Lines Matching refs:stream

159 				struct netfs_io_stream *stream,  in netfs_prepare_write()  argument
174 subreq->source = stream->source; in netfs_prepare_write()
176 subreq->stream_nr = stream->stream_nr; in netfs_prepare_write()
183 stream->sreq_max_len = UINT_MAX; in netfs_prepare_write()
184 stream->sreq_max_segs = INT_MAX; in netfs_prepare_write()
185 switch (stream->source) { in netfs_prepare_write()
188 stream->sreq_max_len = wreq->wsize; in netfs_prepare_write()
198 if (stream->prepare_write) in netfs_prepare_write()
199 stream->prepare_write(subreq); in netfs_prepare_write()
208 list_add_tail(&subreq->rreq_link, &stream->subrequests); in netfs_prepare_write()
209 if (list_is_first(&subreq->rreq_link, &stream->subrequests)) { in netfs_prepare_write()
210 stream->front = subreq; in netfs_prepare_write()
211 if (!stream->active) { in netfs_prepare_write()
212 stream->collected_to = stream->front->start; in netfs_prepare_write()
214 smp_store_release(&stream->active, true); in netfs_prepare_write()
220 stream->construct = subreq; in netfs_prepare_write()
228 static void netfs_do_issue_write(struct netfs_io_stream *stream, in netfs_do_issue_write() argument
239 stream->issue_write(subreq); in netfs_do_issue_write()
242 void netfs_reissue_write(struct netfs_io_stream *stream, in netfs_reissue_write() argument
257 netfs_do_issue_write(stream, subreq); in netfs_reissue_write()
261 struct netfs_io_stream *stream) in netfs_issue_write() argument
263 struct netfs_io_subrequest *subreq = stream->construct; in netfs_issue_write()
267 stream->construct = NULL; in netfs_issue_write()
269 netfs_do_issue_write(stream, subreq); in netfs_issue_write()
279 struct netfs_io_stream *stream, in netfs_advance_write() argument
282 struct netfs_io_subrequest *subreq = stream->construct; in netfs_advance_write()
285 if (!stream->avail) { in netfs_advance_write()
293 netfs_issue_write(wreq, stream); in netfs_advance_write()
297 if (!stream->construct) in netfs_advance_write()
298 netfs_prepare_write(wreq, stream, start); in netfs_advance_write()
299 subreq = stream->construct; in netfs_advance_write()
301 part = umin(stream->sreq_max_len - subreq->len, len); in netfs_advance_write()
302 _debug("part %zx/%zx %zx/%zx", subreq->len, stream->sreq_max_len, part, len); in netfs_advance_write()
305 stream->submit_extendable_to -= part; in netfs_advance_write()
307 if (subreq->len >= stream->sreq_max_len || in netfs_advance_write()
308 subreq->nr_segs >= stream->sreq_max_segs || in netfs_advance_write()
310 netfs_issue_write(wreq, stream); in netfs_advance_write()
326 struct netfs_io_stream *stream; in netfs_write_folio() local
454 stream = &wreq->io_streams[s]; in netfs_write_folio()
455 stream->submit_off = foff; in netfs_write_folio()
456 stream->submit_len = flen; in netfs_write_folio()
457 if (!stream->avail || in netfs_write_folio()
458 (stream->source == NETFS_WRITE_TO_CACHE && streamw) || in netfs_write_folio()
459 (stream->source == NETFS_UPLOAD_TO_SERVER && in netfs_write_folio()
461 stream->submit_off = UINT_MAX; in netfs_write_folio()
462 stream->submit_len = 0; in netfs_write_folio()
478 stream = &wreq->io_streams[s]; in netfs_write_folio()
479 if (stream->submit_len > 0 && in netfs_write_folio()
480 stream->submit_off < lowest_off) { in netfs_write_folio()
481 lowest_off = stream->submit_off; in netfs_write_folio()
488 stream = &wreq->io_streams[choose_s]; in netfs_write_folio()
491 if (stream->submit_off > iter_off) { in netfs_write_folio()
492 rolling_buffer_advance(&wreq->buffer, stream->submit_off - iter_off); in netfs_write_folio()
493 iter_off = stream->submit_off; in netfs_write_folio()
496 atomic64_set(&wreq->issued_to, fpos + stream->submit_off); in netfs_write_folio()
497 stream->submit_extendable_to = fsize - stream->submit_off; in netfs_write_folio()
498 part = netfs_advance_write(wreq, stream, fpos + stream->submit_off, in netfs_write_folio()
499 stream->submit_len, to_eof); in netfs_write_folio()
500 stream->submit_off += part; in netfs_write_folio()
501 if (part > stream->submit_len) in netfs_write_folio()
502 stream->submit_len = 0; in netfs_write_folio()
504 stream->submit_len -= part; in netfs_write_folio()
535 struct netfs_io_stream *stream = &wreq->io_streams[s]; in netfs_end_issue_write() local
537 if (!stream->active) in netfs_end_issue_write()
539 if (!list_empty(&stream->subrequests)) in netfs_end_issue_write()
541 netfs_issue_write(wreq, stream); in netfs_end_issue_write()
744 struct netfs_io_stream *stream; in netfs_write_folio_single() local
786 stream = &wreq->io_streams[s]; in netfs_write_folio_single()
787 stream->submit_off = 0; in netfs_write_folio_single()
788 stream->submit_len = flen; in netfs_write_folio_single()
789 if (!stream->avail) { in netfs_write_folio_single()
790 stream->submit_off = UINT_MAX; in netfs_write_folio_single()
791 stream->submit_len = 0; in netfs_write_folio_single()
807 stream = &wreq->io_streams[s]; in netfs_write_folio_single()
808 if (stream->submit_len > 0 && in netfs_write_folio_single()
809 stream->submit_off < lowest_off) { in netfs_write_folio_single()
810 lowest_off = stream->submit_off; in netfs_write_folio_single()
817 stream = &wreq->io_streams[choose_s]; in netfs_write_folio_single()
820 if (stream->submit_off > iter_off) { in netfs_write_folio_single()
821 rolling_buffer_advance(&wreq->buffer, stream->submit_off - iter_off); in netfs_write_folio_single()
822 iter_off = stream->submit_off; in netfs_write_folio_single()
825 atomic64_set(&wreq->issued_to, fpos + stream->submit_off); in netfs_write_folio_single()
826 stream->submit_extendable_to = fsize - stream->submit_off; in netfs_write_folio_single()
827 part = netfs_advance_write(wreq, stream, fpos + stream->submit_off, in netfs_write_folio_single()
828 stream->submit_len, to_eof); in netfs_write_folio_single()
829 stream->submit_off += part; in netfs_write_folio_single()
830 if (part > stream->submit_len) in netfs_write_folio_single()
831 stream->submit_len = 0; in netfs_write_folio_single()
833 stream->submit_len -= part; in netfs_write_folio_single()