Lines Matching defs:subreq
67 struct netfs_io_subrequest *subreq)
69 trace_netfs_collect_sreq(wreq, subreq);
72 list_del_init(&subreq->rreq_link);
75 wreq->transferred += subreq->transferred;
76 iov_iter_advance(&wreq->buffer.iter, subreq->transferred);
78 stream->collected_to = subreq->start + subreq->transferred;
80 netfs_put_subrequest(subreq, netfs_sreq_trace_put_done);
91 * attempt to do preparation such as content encryption for the next subreq
96 struct netfs_io_subrequest *subreq = NULL;
110 if (!subreq) {
112 subreq = stream->construct;
113 if (!subreq) {
122 if (unlikely(test_bit(NETFS_SREQ_FAILED, &subreq->flags))) {
123 netfs_write_subrequest_terminated(subreq, subreq->error);
124 wreq->error = subreq->error;
128 iov_iter_truncate(&subreq->io_iter, wreq->len - wreq->transferred);
129 if (!iov_iter_count(&subreq->io_iter)) {
132 __set_bit(NETFS_SREQ_FAILED, &subreq->flags);
133 netfs_write_subrequest_terminated(subreq, -EIO);
138 subreq->len = netfs_limit_iter(&subreq->io_iter, 0,
141 iov_iter_truncate(&subreq->io_iter, subreq->len);
142 stream->submit_extendable_to = subreq->len;
144 trace_netfs_sreq(subreq, netfs_sreq_trace_submit);
145 stream->issue_write(subreq);
150 if (test_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags)) {
152 } else if (test_bit(NETFS_SREQ_FAILED, &subreq->flags)) {
153 wreq->error = subreq->error;
154 netfs_see_subrequest(subreq, netfs_sreq_trace_see_failed);
155 subreq = NULL;
160 netfs_unbuffered_write_collect(wreq, stream, subreq);
161 subreq = NULL;
176 subreq->error = -EAGAIN;
177 trace_netfs_sreq(subreq, netfs_sreq_trace_retry);
178 if (subreq->transferred > 0) {
179 iov_iter_advance(&wreq->buffer.iter, subreq->transferred);
180 wreq->transferred += subreq->transferred;
187 __clear_bit(NETFS_SREQ_MADE_PROGRESS, &subreq->flags);
188 __clear_bit(NETFS_SREQ_NEED_RETRY, &subreq->flags);
189 __clear_bit(NETFS_SREQ_BOUNDARY, &subreq->flags);
190 __clear_bit(NETFS_SREQ_FAILED, &subreq->flags);
191 subreq->io_iter = wreq->buffer.iter;
192 subreq->start = wreq->start + wreq->transferred;
193 subreq->len = wreq->len - wreq->transferred;
194 subreq->transferred = 0;
195 subreq->retry_count += 1;
199 netfs_get_subrequest(subreq, netfs_sreq_trace_get_resubmit);
202 stream->prepare_write(subreq);
203 __set_bit(NETFS_SREQ_IN_PROGRESS, &subreq->flags);