Lines Matching refs:subreq

13 			       struct netfs_io_subrequest *subreq)  in netfs_reissue_read()  argument
15 struct iov_iter *io_iter = &subreq->io_iter; in netfs_reissue_read()
18 subreq->curr_folioq = (struct folio_queue *)io_iter->folioq; in netfs_reissue_read()
19 subreq->curr_folioq_slot = io_iter->folioq_slot; in netfs_reissue_read()
20 subreq->curr_folio_order = subreq->curr_folioq->orders[subreq->curr_folioq_slot]; in netfs_reissue_read()
24 __set_bit(NETFS_SREQ_IN_PROGRESS, &subreq->flags); in netfs_reissue_read()
25 netfs_get_subrequest(subreq, netfs_sreq_trace_get_resubmit); in netfs_reissue_read()
26 subreq->rreq->netfs_ops->issue_read(subreq); in netfs_reissue_read()
35 struct netfs_io_subrequest *subreq; in netfs_retry_read_subrequests() local
53 struct netfs_io_subrequest *subreq; in netfs_retry_read_subrequests() local
55 list_for_each_entry(subreq, &rreq->subrequests, rreq_link) { in netfs_retry_read_subrequests()
56 if (test_bit(NETFS_SREQ_FAILED, &subreq->flags)) in netfs_retry_read_subrequests()
58 if (__test_and_clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags)) { in netfs_retry_read_subrequests()
59 netfs_reset_iter(subreq); in netfs_retry_read_subrequests()
60 netfs_reissue_read(rreq, subreq); in netfs_retry_read_subrequests()
107 while ((subreq = list_first_entry_or_null( in netfs_retry_read_subrequests()
109 if (subreq->start != start + len || in netfs_retry_read_subrequests()
110 subreq->transferred > 0 || in netfs_retry_read_subrequests()
111 !test_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags)) in netfs_retry_read_subrequests()
113 list_move_tail(&subreq->rreq_link, &sublist); in netfs_retry_read_subrequests()
114 len += subreq->len; in netfs_retry_read_subrequests()
115 deferred_next_donated = subreq->next_donated; in netfs_retry_read_subrequests()
116 if (test_bit(NETFS_SREQ_BOUNDARY, &subreq->flags)) in netfs_retry_read_subrequests()
130 while ((subreq = list_first_entry_or_null( in netfs_retry_read_subrequests()
132 list_del(&subreq->rreq_link); in netfs_retry_read_subrequests()
134 subreq->source = NETFS_DOWNLOAD_FROM_SERVER; in netfs_retry_read_subrequests()
135 subreq->start = start - subreq->transferred; in netfs_retry_read_subrequests()
136 subreq->len = len + subreq->transferred; in netfs_retry_read_subrequests()
137 stream0->sreq_max_len = subreq->len; in netfs_retry_read_subrequests()
139 __clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags); in netfs_retry_read_subrequests()
140 __set_bit(NETFS_SREQ_RETRYING, &subreq->flags); in netfs_retry_read_subrequests()
143 list_add_tail(&subreq->rreq_link, &rreq->subrequests); in netfs_retry_read_subrequests()
144 subreq->prev_donated += rreq->prev_donated; in netfs_retry_read_subrequests()
146 trace_netfs_sreq(subreq, netfs_sreq_trace_retry); in netfs_retry_read_subrequests()
152 if (rreq->netfs_ops->prepare_read(subreq) < 0) { in netfs_retry_read_subrequests()
153 trace_netfs_sreq(subreq, netfs_sreq_trace_reprep_failed); in netfs_retry_read_subrequests()
154 __set_bit(NETFS_SREQ_FAILED, &subreq->flags); in netfs_retry_read_subrequests()
160 subreq->len = subreq->transferred + part; in netfs_retry_read_subrequests()
161 subreq->io_iter = source; in netfs_retry_read_subrequests()
162 iov_iter_truncate(&subreq->io_iter, part); in netfs_retry_read_subrequests()
168 __set_bit(NETFS_SREQ_BOUNDARY, &subreq->flags); in netfs_retry_read_subrequests()
169 subreq->next_donated = deferred_next_donated; in netfs_retry_read_subrequests()
171 __clear_bit(NETFS_SREQ_BOUNDARY, &subreq->flags); in netfs_retry_read_subrequests()
172 subreq->next_donated = 0; in netfs_retry_read_subrequests()
175 netfs_reissue_read(rreq, subreq); in netfs_retry_read_subrequests()
181 subreq = netfs_alloc_subrequest(rreq); in netfs_retry_read_subrequests()
182 if (!subreq) in netfs_retry_read_subrequests()
184 subreq->source = NETFS_DOWNLOAD_FROM_SERVER; in netfs_retry_read_subrequests()
185 subreq->start = start; in netfs_retry_read_subrequests()
188 netfs_put_subrequest(subreq, false, netfs_sreq_trace_new); in netfs_retry_read_subrequests()
189 trace_netfs_sreq(subreq, netfs_sreq_trace_split); in netfs_retry_read_subrequests()
190 list_add_tail(&subreq->rreq_link, &sublist); in netfs_retry_read_subrequests()
197 while ((subreq = list_first_entry_or_null( in netfs_retry_read_subrequests()
199 trace_netfs_sreq(subreq, netfs_sreq_trace_discard); in netfs_retry_read_subrequests()
200 list_del(&subreq->rreq_link); in netfs_retry_read_subrequests()
201 netfs_put_subrequest(subreq, false, netfs_sreq_trace_put_done); in netfs_retry_read_subrequests()
211 list_for_each_entry(subreq, &queue, rreq_link) { in netfs_retry_read_subrequests()
212 if (!subreq->error) in netfs_retry_read_subrequests()
213 subreq->error = -ENOMEM; in netfs_retry_read_subrequests()
214 __clear_bit(NETFS_SREQ_FAILED, &subreq->flags); in netfs_retry_read_subrequests()
215 __clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags); in netfs_retry_read_subrequests()
216 __clear_bit(NETFS_SREQ_RETRYING, &subreq->flags); in netfs_retry_read_subrequests()