Lines Matching refs:rreq
56 static int netfs_single_begin_cache_read(struct netfs_io_request *rreq, struct netfs_inode *ctx) in netfs_single_begin_cache_read() argument
58 return fscache_begin_read_operation(&rreq->cache_resources, netfs_i_cookie(ctx)); in netfs_single_begin_cache_read()
61 static void netfs_single_cache_prepare_read(struct netfs_io_request *rreq, in netfs_single_cache_prepare_read() argument
64 struct netfs_cache_resources *cres = &rreq->cache_resources; in netfs_single_cache_prepare_read()
70 subreq->source = cres->ops->prepare_read(subreq, rreq->i_size); in netfs_single_cache_prepare_read()
75 static void netfs_single_read_cache(struct netfs_io_request *rreq, in netfs_single_read_cache() argument
78 struct netfs_cache_resources *cres = &rreq->cache_resources; in netfs_single_read_cache()
80 _enter("R=%08x[%x]", rreq->debug_id, subreq->debug_index); in netfs_single_read_cache()
90 static int netfs_single_dispatch_read(struct netfs_io_request *rreq) in netfs_single_dispatch_read() argument
92 struct netfs_io_stream *stream = &rreq->io_streams[0]; in netfs_single_dispatch_read()
96 subreq = netfs_alloc_subrequest(rreq); in netfs_single_dispatch_read()
102 subreq->len = rreq->len; in netfs_single_dispatch_read()
103 subreq->io_iter = rreq->buffer.iter; in netfs_single_dispatch_read()
107 spin_lock(&rreq->lock); in netfs_single_dispatch_read()
113 spin_unlock(&rreq->lock); in netfs_single_dispatch_read()
115 netfs_single_cache_prepare_read(rreq, subreq); in netfs_single_dispatch_read()
119 if (rreq->netfs_ops->prepare_read) { in netfs_single_dispatch_read()
120 ret = rreq->netfs_ops->prepare_read(subreq); in netfs_single_dispatch_read()
125 rreq->netfs_ops->issue_read(subreq); in netfs_single_dispatch_read()
126 rreq->submitted += subreq->len; in netfs_single_dispatch_read()
130 netfs_single_read_cache(rreq, subreq); in netfs_single_dispatch_read()
131 rreq->submitted += subreq->len; in netfs_single_dispatch_read()
142 set_bit(NETFS_RREQ_ALL_QUEUED, &rreq->flags); in netfs_single_dispatch_read()
168 struct netfs_io_request *rreq; in netfs_read_single() local
172 rreq = netfs_alloc_request(inode->i_mapping, file, 0, iov_iter_count(iter), in netfs_read_single()
174 if (IS_ERR(rreq)) in netfs_read_single()
175 return PTR_ERR(rreq); in netfs_read_single()
177 ret = netfs_single_begin_cache_read(rreq, ictx); in netfs_read_single()
182 trace_netfs_read(rreq, 0, rreq->len, netfs_read_trace_read_single); in netfs_read_single()
184 rreq->buffer.iter = *iter; in netfs_read_single()
185 netfs_single_dispatch_read(rreq); in netfs_read_single()
187 ret = netfs_wait_for_read(rreq); in netfs_read_single()
188 netfs_put_request(rreq, netfs_rreq_trace_put_return); in netfs_read_single()
192 netfs_put_request(rreq, netfs_rreq_trace_put_failed); in netfs_read_single()