Lines Matching defs:rreq
22 struct netfs_io_request *rreq;
25 rreq = kzalloc(sizeof(struct netfs_io_request), GFP_KERNEL);
26 if (!rreq)
29 rreq->start = start;
30 rreq->len = len;
31 rreq->origin = origin;
32 rreq->netfs_ops = ctx->ops;
33 rreq->mapping = mapping;
34 rreq->inode = inode;
35 rreq->i_size = i_size_read(inode);
36 rreq->debug_id = atomic_inc_return(&debug_ids);
37 INIT_LIST_HEAD(&rreq->subrequests);
38 refcount_set(&rreq->ref, 1);
39 __set_bit(NETFS_RREQ_IN_PROGRESS, &rreq->flags);
40 if (rreq->netfs_ops->init_request) {
41 ret = rreq->netfs_ops->init_request(rreq, file);
43 kfree(rreq);
49 return rreq;
52 void netfs_get_request(struct netfs_io_request *rreq, enum netfs_rreq_ref_trace what)
56 __refcount_inc(&rreq->ref, &r);
57 trace_netfs_rreq_ref(rreq->debug_id, r + 1, what);
60 void netfs_clear_subrequests(struct netfs_io_request *rreq, bool was_async)
64 while (!list_empty(&rreq->subrequests)) {
65 subreq = list_first_entry(&rreq->subrequests,
75 struct netfs_io_request *rreq =
78 trace_netfs_rreq(rreq, netfs_rreq_trace_free);
79 netfs_clear_subrequests(rreq, false);
80 if (rreq->netfs_ops->free_request)
81 rreq->netfs_ops->free_request(rreq);
82 if (rreq->cache_resources.ops)
83 rreq->cache_resources.ops->end_operation(&rreq->cache_resources);
84 kfree(rreq);
88 void netfs_put_request(struct netfs_io_request *rreq, bool was_async,
91 unsigned int debug_id = rreq->debug_id;
95 dead = __refcount_dec_and_test(&rreq->ref, &r);
99 rreq->work.func = netfs_free_request;
100 if (!queue_work(system_unbound_wq, &rreq->work))
103 netfs_free_request(&rreq->work);
111 struct netfs_io_subrequest *netfs_alloc_subrequest(struct netfs_io_request *rreq)
119 subreq->rreq = rreq;
120 netfs_get_request(rreq, netfs_rreq_trace_get_subreq);
133 trace_netfs_sreq_ref(subreq->rreq->debug_id, subreq->debug_index, r + 1,
140 struct netfs_io_request *rreq = subreq->rreq;
145 netfs_put_request(rreq, was_async, netfs_rreq_trace_put_subreq);
152 unsigned int debug_id = subreq->rreq->debug_id;