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()
112 spin_unlock(&rreq->lock); in netfs_single_dispatch_read()
114 netfs_single_cache_prepare_read(rreq, subreq); in netfs_single_dispatch_read()
118 if (rreq->netfs_ops->prepare_read) { in netfs_single_dispatch_read()
119 ret = rreq->netfs_ops->prepare_read(subreq); in netfs_single_dispatch_read()
124 rreq->netfs_ops->issue_read(subreq); in netfs_single_dispatch_read()
125 rreq->submitted += subreq->len; in netfs_single_dispatch_read()
129 netfs_single_read_cache(rreq, subreq); in netfs_single_dispatch_read()
130 rreq->submitted += subreq->len; in netfs_single_dispatch_read()
141 set_bit(NETFS_RREQ_ALL_QUEUED, &rreq->flags); in netfs_single_dispatch_read()
167 struct netfs_io_request *rreq; in netfs_read_single() local
171 rreq = netfs_alloc_request(inode->i_mapping, file, 0, iov_iter_count(iter), in netfs_read_single()
173 if (IS_ERR(rreq)) in netfs_read_single()
174 return PTR_ERR(rreq); in netfs_read_single()
176 ret = netfs_single_begin_cache_read(rreq, ictx); in netfs_read_single()
181 trace_netfs_read(rreq, 0, rreq->len, netfs_read_trace_read_single); in netfs_read_single()
183 rreq->buffer.iter = *iter; in netfs_read_single()
184 netfs_single_dispatch_read(rreq); in netfs_read_single()
186 ret = netfs_wait_for_read(rreq); in netfs_read_single()
187 netfs_put_request(rreq, netfs_rreq_trace_put_return); in netfs_read_single()
191 netfs_put_failed_request(rreq); in netfs_read_single()