Lines Matching refs:subreq

36 		struct netfs_io_subrequest *subreq;  in netfs_retry_write_stream()  local
38 list_for_each_entry(subreq, &stream->subrequests, rreq_link) { in netfs_retry_write_stream()
39 if (test_bit(NETFS_SREQ_FAILED, &subreq->flags)) in netfs_retry_write_stream()
41 if (__test_and_clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags)) { in netfs_retry_write_stream()
44 netfs_reset_iter(subreq); in netfs_retry_write_stream()
45 source = subreq->io_iter; in netfs_retry_write_stream()
46 netfs_get_subrequest(subreq, netfs_sreq_trace_get_resubmit); in netfs_retry_write_stream()
47 netfs_reissue_write(stream, subreq, &source); in netfs_retry_write_stream()
56 struct netfs_io_subrequest *subreq = NULL, *from, *to, *tmp; in netfs_retry_write_stream() local
76 subreq = list_entry(next, struct netfs_io_subrequest, rreq_link); in netfs_retry_write_stream()
77 if (subreq->start + subreq->transferred != start + len || in netfs_retry_write_stream()
78 test_bit(NETFS_SREQ_BOUNDARY, &subreq->flags) || in netfs_retry_write_stream()
79 !test_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags)) in netfs_retry_write_stream()
81 to = subreq; in netfs_retry_write_stream()
93 subreq = from; in netfs_retry_write_stream()
94 list_for_each_entry_from(subreq, &stream->subrequests, rreq_link) { in netfs_retry_write_stream()
98 subreq->start = start; in netfs_retry_write_stream()
99 subreq->len = len; in netfs_retry_write_stream()
100 __clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags); in netfs_retry_write_stream()
101 subreq->retry_count++; in netfs_retry_write_stream()
102 trace_netfs_sreq(subreq, netfs_sreq_trace_retry); in netfs_retry_write_stream()
106 stream->prepare_write(subreq); in netfs_retry_write_stream()
111 subreq->len = part; in netfs_retry_write_stream()
112 subreq->transferred = 0; in netfs_retry_write_stream()
115 if (len && subreq == to && in netfs_retry_write_stream()
119 netfs_get_subrequest(subreq, netfs_sreq_trace_get_resubmit); in netfs_retry_write_stream()
120 netfs_reissue_write(stream, subreq, &source); in netfs_retry_write_stream()
121 if (subreq == to) in netfs_retry_write_stream()
129 if (subreq == to) in netfs_retry_write_stream()
131 list_for_each_entry_safe_from(subreq, tmp, in netfs_retry_write_stream()
133 trace_netfs_sreq(subreq, netfs_sreq_trace_discard); in netfs_retry_write_stream()
134 list_del(&subreq->rreq_link); in netfs_retry_write_stream()
135 netfs_put_subrequest(subreq, netfs_sreq_trace_put_done); in netfs_retry_write_stream()
136 if (subreq == to) in netfs_retry_write_stream()
146 subreq = netfs_alloc_subrequest(wreq); in netfs_retry_write_stream()
147 subreq->source = to->source; in netfs_retry_write_stream()
148 subreq->start = start; in netfs_retry_write_stream()
149 subreq->stream_nr = to->stream_nr; in netfs_retry_write_stream()
150 subreq->retry_count = 1; in netfs_retry_write_stream()
152 trace_netfs_sreq_ref(wreq->debug_id, subreq->debug_index, in netfs_retry_write_stream()
153 refcount_read(&subreq->ref), in netfs_retry_write_stream()
155 trace_netfs_sreq(subreq, netfs_sreq_trace_split); in netfs_retry_write_stream()
157 list_add(&subreq->rreq_link, &to->rreq_link); in netfs_retry_write_stream()
159 trace_netfs_sreq(subreq, netfs_sreq_trace_retry); in netfs_retry_write_stream()
175 stream->prepare_write(subreq); in netfs_retry_write_stream()
178 subreq->len = subreq->transferred + part; in netfs_retry_write_stream()
186 netfs_reissue_write(stream, subreq, &source); in netfs_retry_write_stream()