Lines Matching refs:req
55 struct ecryptfs_open_req *req;
67 req = list_first_entry(&ecryptfs_kthread_ctl.req_list,
70 mutex_lock(&req->mux);
71 list_del(&req->kthread_ctl_list);
72 if (!(req->flags & ECRYPTFS_REQ_ZOMBIE)) {
73 dget(req->lower_dentry);
74 mntget(req->lower_mnt);
75 (*req->lower_file) = dentry_open(
76 req->lower_dentry, req->lower_mnt,
78 req->flags |= ECRYPTFS_REQ_PROCESSED;
80 wake_up(&req->wait);
81 mutex_unlock(&req->mux);
108 struct ecryptfs_open_req *req;
112 list_for_each_entry(req, &ecryptfs_kthread_ctl.req_list,
114 mutex_lock(&req->mux);
115 req->flags |= ECRYPTFS_REQ_ZOMBIE;
116 wake_up(&req->wait);
117 mutex_unlock(&req->mux);
139 struct ecryptfs_open_req *req;
156 req = kmem_cache_alloc(ecryptfs_open_req_cache, GFP_KERNEL);
157 if (!req) {
161 mutex_init(&req->mux);
162 req->lower_file = lower_file;
163 req->lower_dentry = lower_dentry;
164 req->lower_mnt = lower_mnt;
165 init_waitqueue_head(&req->wait);
166 req->flags = 0;
176 list_add_tail(&req->kthread_ctl_list, &ecryptfs_kthread_ctl.req_list);
179 wait_event(req->wait, (req->flags != 0));
180 mutex_lock(&req->mux);
181 BUG_ON(req->flags == 0);
182 if (req->flags & ECRYPTFS_REQ_DROPPED
183 || req->flags & ECRYPTFS_REQ_ZOMBIE) {
189 if (IS_ERR(*req->lower_file))
190 rc = PTR_ERR(*req->lower_file);
192 mutex_unlock(&req->mux);
194 kmem_cache_free(ecryptfs_open_req_cache, req);