Lines Matching refs:subreq
140 void netfs_prepare_write_failed(struct netfs_io_subrequest *subreq) in netfs_prepare_write_failed() argument
142 __set_bit(NETFS_SREQ_FAILED, &subreq->flags); in netfs_prepare_write_failed()
143 trace_netfs_sreq(subreq, netfs_sreq_trace_prep_failed); in netfs_prepare_write_failed()
155 struct netfs_io_subrequest *subreq; in netfs_prepare_write() local
167 subreq = netfs_alloc_subrequest(wreq); in netfs_prepare_write()
168 subreq->source = stream->source; in netfs_prepare_write()
169 subreq->start = start; in netfs_prepare_write()
170 subreq->stream_nr = stream->stream_nr; in netfs_prepare_write()
171 subreq->io_iter = *wreq_iter; in netfs_prepare_write()
173 _enter("R=%x[%x]", wreq->debug_id, subreq->debug_index); in netfs_prepare_write()
175 trace_netfs_sreq(subreq, netfs_sreq_trace_prepare); in netfs_prepare_write()
193 stream->prepare_write(subreq); in netfs_prepare_write()
195 __set_bit(NETFS_SREQ_IN_PROGRESS, &subreq->flags); in netfs_prepare_write()
202 list_add_tail(&subreq->rreq_link, &stream->subrequests); in netfs_prepare_write()
203 if (list_is_first(&subreq->rreq_link, &stream->subrequests)) { in netfs_prepare_write()
204 stream->front = subreq; in netfs_prepare_write()
214 stream->construct = subreq; in netfs_prepare_write()
223 struct netfs_io_subrequest *subreq) in netfs_do_issue_write() argument
225 struct netfs_io_request *wreq = subreq->rreq; in netfs_do_issue_write()
227 _enter("R=%x[%x],%zx", wreq->debug_id, subreq->debug_index, subreq->len); in netfs_do_issue_write()
229 if (test_bit(NETFS_SREQ_FAILED, &subreq->flags)) in netfs_do_issue_write()
230 return netfs_write_subrequest_terminated(subreq, subreq->error, false); in netfs_do_issue_write()
232 trace_netfs_sreq(subreq, netfs_sreq_trace_submit); in netfs_do_issue_write()
233 stream->issue_write(subreq); in netfs_do_issue_write()
237 struct netfs_io_subrequest *subreq, in netfs_reissue_write() argument
240 size_t size = subreq->len - subreq->transferred; in netfs_reissue_write()
243 subreq->io_iter = *source; in netfs_reissue_write()
245 iov_iter_truncate(&subreq->io_iter, size); in netfs_reissue_write()
247 __set_bit(NETFS_SREQ_IN_PROGRESS, &subreq->flags); in netfs_reissue_write()
248 netfs_do_issue_write(stream, subreq); in netfs_reissue_write()
254 struct netfs_io_subrequest *subreq = stream->construct; in netfs_issue_write() local
256 if (!subreq) in netfs_issue_write()
259 subreq->io_iter.count = subreq->len; in netfs_issue_write()
260 netfs_do_issue_write(stream, subreq); in netfs_issue_write()
273 struct netfs_io_subrequest *subreq = stream->construct; in netfs_advance_write() local
281 _enter("R=%x[%x]", wreq->debug_id, subreq ? subreq->debug_index : 0); in netfs_advance_write()
283 if (subreq && start != subreq->start + subreq->len) { in netfs_advance_write()
285 subreq = NULL; in netfs_advance_write()
290 subreq = stream->construct; in netfs_advance_write()
292 part = umin(stream->sreq_max_len - subreq->len, len); in netfs_advance_write()
293 _debug("part %zx/%zx %zx/%zx", subreq->len, stream->sreq_max_len, part, len); in netfs_advance_write()
294 subreq->len += part; in netfs_advance_write()
295 subreq->nr_segs++; in netfs_advance_write()
298 if (subreq->len >= stream->sreq_max_len || in netfs_advance_write()
299 subreq->nr_segs >= stream->sreq_max_segs || in netfs_advance_write()
302 subreq = NULL; in netfs_advance_write()