Lines Matching refs:subreq
217 struct netfs_io_subrequest *subreq = req->r_priv; in finish_netfs_read() local
226 subreq->len, i_size_read(req->r_inode)); in finish_netfs_read()
230 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in finish_netfs_read()
231 __set_bit(NETFS_SREQ_MADE_PROGRESS, &subreq->flags); in finish_netfs_read()
240 if (err < subreq->len && in finish_netfs_read()
241 subreq->rreq->origin != NETFS_UNBUFFERED_READ && in finish_netfs_read()
242 subreq->rreq->origin != NETFS_DIO_READ) in finish_netfs_read()
243 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in finish_netfs_read()
246 osd_data->pages, subreq->start, in finish_netfs_read()
249 if (err > subreq->len) in finish_netfs_read()
250 err = subreq->len; in finish_netfs_read()
253 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in finish_netfs_read()
262 subreq->transferred = err; in finish_netfs_read()
265 subreq->error = err; in finish_netfs_read()
266 trace_netfs_sreq(subreq, netfs_sreq_trace_io_progress); in finish_netfs_read()
267 netfs_read_subreq_terminated(subreq); in finish_netfs_read()
272 static bool ceph_netfs_issue_op_inline(struct netfs_io_subrequest *subreq) in ceph_netfs_issue_op_inline() argument
274 struct netfs_io_request *rreq = subreq->rreq; in ceph_netfs_issue_op_inline()
287 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in ceph_netfs_issue_op_inline()
288 __clear_bit(NETFS_SREQ_COPY_TO_CACHE, &subreq->flags); in ceph_netfs_issue_op_inline()
290 if (subreq->start >= inode->i_size) in ceph_netfs_issue_op_inline()
304 trace_netfs_sreq(subreq, netfs_sreq_trace_submit); in ceph_netfs_issue_op_inline()
317 len = min_t(size_t, iinfo->inline_len - subreq->start, subreq->len); in ceph_netfs_issue_op_inline()
318 err = copy_to_iter(iinfo->inline_data + subreq->start, len, &subreq->io_iter); in ceph_netfs_issue_op_inline()
322 subreq->transferred += err; in ceph_netfs_issue_op_inline()
328 subreq->error = err; in ceph_netfs_issue_op_inline()
329 trace_netfs_sreq(subreq, netfs_sreq_trace_io_progress); in ceph_netfs_issue_op_inline()
330 netfs_read_subreq_terminated(subreq); in ceph_netfs_issue_op_inline()
334 static int ceph_netfs_prepare_read(struct netfs_io_subrequest *subreq) in ceph_netfs_prepare_read() argument
336 struct netfs_io_request *rreq = subreq->rreq; in ceph_netfs_prepare_read()
344 ceph_calc_file_object_mapping(&ci->i_layout, subreq->start, subreq->len, in ceph_netfs_prepare_read()
350 static void ceph_netfs_issue_read(struct netfs_io_subrequest *subreq) in ceph_netfs_issue_read() argument
352 struct netfs_io_request *rreq = subreq->rreq; in ceph_netfs_issue_read()
362 u64 off = subreq->start; in ceph_netfs_issue_read()
370 if (ceph_has_inline_data(ci) && ceph_netfs_issue_op_inline(subreq)) in ceph_netfs_issue_read()
378 len = subreq->len; in ceph_netfs_issue_read()
399 ceph_vinop(inode), subreq->start, subreq->len, len); in ceph_netfs_issue_read()
419 subreq->io_iter.count = len; in ceph_netfs_issue_read()
421 err = iov_iter_get_pages_alloc2(&subreq->io_iter, &pages, len, &page_off); in ceph_netfs_issue_read()
436 osd_req_op_extent_osd_iter(req, 0, &subreq->io_iter); in ceph_netfs_issue_read()
443 req->r_priv = subreq; in ceph_netfs_issue_read()
447 trace_netfs_sreq(subreq, netfs_sreq_trace_submit); in ceph_netfs_issue_read()
452 subreq->error = err; in ceph_netfs_issue_read()
453 netfs_read_subreq_terminated(subreq); in ceph_netfs_issue_read()