Lines Matching refs:rreq

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