/linux/fs/netfs/ |
H A D | read_retry.c | 33 if (list_empty(&stream->subrequests)) in netfs_retry_read_subrequests() 44 list_for_each_entry(subreq, &stream->subrequests, rreq_link) { in netfs_retry_read_subrequests() 65 * populating with smaller subrequests. In the event that the subreq in netfs_retry_read_subrequests() 72 next = stream->subrequests.next; in netfs_retry_read_subrequests() 98 list_for_each_continue(next, &stream->subrequests) { in netfs_retry_read_subrequests() 119 list_for_each_entry_from(subreq, &stream->subrequests, rreq_link) { in netfs_retry_read_subrequests() 173 &stream->subrequests, rreq_link) { in netfs_retry_read_subrequests() 183 /* We ran out of subrequests, so we need to allocate some more in netfs_retry_read_subrequests() 234 } while (!list_is_head(next, &stream->subrequests)); in netfs_retry_read_subrequests() 238 /* If we hit an error, fail all remaining incomplete subrequests */ in netfs_retry_read_subrequests() [all...] |
H A D | write_retry.c | 24 if (list_empty(&stream->subrequests)) in netfs_retry_write_stream() 38 list_for_each_entry(subreq, &stream->subrequests, rreq_link) { in netfs_retry_write_stream() 53 next = stream->subrequests.next; in netfs_retry_write_stream() 75 list_for_each_continue(next, &stream->subrequests) { in netfs_retry_write_stream() 94 list_for_each_entry_from(subreq, &stream->subrequests, rreq_link) { in netfs_retry_write_stream() 132 &stream->subrequests, rreq_link) { in netfs_retry_write_stream() 142 /* We ran out of subrequests, so we need to allocate some more in netfs_retry_write_stream() 192 } while (!list_is_head(next, &stream->subrequests)); in netfs_retry_write_stream()
|
H A D | objects.c | 52 INIT_LIST_HEAD(&rreq->io_streams[0].subrequests); in netfs_alloc_request() 53 INIT_LIST_HEAD(&rreq->io_streams[1].subrequests); in netfs_alloc_request() 102 while (!list_empty(&stream->subrequests)) { in netfs_clear_subrequests() 103 subreq = list_first_entry(&stream->subrequests, in netfs_clear_subrequests()
|
H A D | direct_read.c | 72 list_add_tail(&subreq->rreq_link, &stream->subrequests); in netfs_dispatch_unbuffered_reads() 73 if (list_is_first(&subreq->rreq_link, &stream->subrequests)) { in netfs_dispatch_unbuffered_reads()
|
H A D | write_collect.c | 43 list_for_each_entry(sreq, &s->subrequests, rreq_link) { in netfs_dump_request() 189 * Collect and assess the results of various write subrequests. We may need to 192 * Note that we have a number of parallel, overlapping lists of subrequests, 220 /* Remove completed subrequests from the front of the streams and in netfs_collect_write_results() 279 front = list_first_entry_or_null(&stream->subrequests, in netfs_collect_write_results() 353 * Perform the collection of subrequests, folios and encryption buffers. 377 if (!list_empty(&stream->subrequests)) in netfs_write_collection()
|
H A D | read_collect.c | 178 * Collect and assess the results of various read subrequests. We may need to 181 * Note that we have a sequence of subrequests, which may be drawing on 203 /* Remove completed subrequests from the front of the stream and in netfs_collect_read_results() 300 front = list_first_entry_or_null(&stream->subrequests, in netfs_collect_read_results() 397 * Perform the collection of subrequests and folios. 415 if (!list_empty(&stream->subrequests)) in netfs_read_collection() 488 list_is_first(&subreq->rreq_link, &stream->subrequests) in netfs_read_subreq_progress()
|
H A D | read_single.c | 108 list_add_tail(&subreq->rreq_link, &stream->subrequests); in netfs_single_dispatch_read()
|
H A D | write_issue.c | 29 * The sequence in each stream may contain gaps and noncontiguous subrequests 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() 466 /* Attach the folio to one or more subrequests. For a big folio, we in netfs_write_folio() 467 * could end up with thousands of subrequests if the wsize is small - in netfs_write_folio() 468 * but we might need to wait during the creation of subrequests for in netfs_write_folio() 539 if (!list_empty(&stream->subrequests)) in netfs_end_issue_write() 795 /* Attach the folio to one or more subrequests. For a big folio, we in netfs_write_folio_single() 796 * could end up with thousands of subrequests if the wsize is small - in netfs_write_folio_single() 797 * but we might need to wait during the creation of subrequests fo in netfs_write_folio_single() [all...] |
H A D | read_pgpriv2.c | 65 /* Attach the folio to one or more subrequests. For a big folio, we in netfs_pgpriv2_copy_folio() 66 * could end up with thousands of subrequests if the wsize is small - in netfs_pgpriv2_copy_folio() 67 * but we might need to wait during the creation of subrequests for in netfs_pgpriv2_copy_folio() 160 if (list_empty_careful(&creq->io_streams[1].subrequests)) in netfs_pgpriv2_end_copy_to_cache()
|
H A D | buffered_read.c | 172 list_add_tail(&subreq->rreq_link, &stream->subrequests); in netfs_queue_read() 173 if (list_is_first(&subreq->rreq_link, &stream->subrequests)) { in netfs_queue_read()
|
/linux/Documentation/filesystems/ |
H A D | netfs_library.rst | 57 streams of subrequests. 59 * A *stream*. A non-overlapping series of subrequests. The subrequests 73 A read operation will have a single stream and the subrequests within that 74 stream may be of mixed origins, for instance mixing RPC subrequests and cache 75 subrequests. 83 The subrequests within a write stream do not need to match alignment or size 84 with the subrequests in another write stream and netfslib performs the tiling 85 of subrequests in each stream over the source buffer independently. Further, 89 In addition, the subrequests d [all...] |
/linux/fs/afs/ |
H A D | write.c | 196 list_first_entry(&stream->subrequests, in afs_retry_request()
|
/linux/include/linux/ |
H A D | netfs.h | 127 * Stream of I/O subrequests going to a particular destination, such as the 142 struct list_head subrequests; /* Contributory I/O operations */ member 176 struct list_head rreq_link; /* Link in rreq->subrequests */
|