Lines Matching defs:aio_req
260 static inline void ovl_aio_put(struct ovl_aio_req *aio_req)
262 if (refcount_dec_and_test(&aio_req->ref)) {
263 fput(aio_req->iocb.ki_filp);
264 kmem_cache_free(ovl_aio_request_cachep, aio_req);
268 static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
270 struct kiocb *iocb = &aio_req->iocb;
271 struct kiocb *orig_iocb = aio_req->orig_iocb;
284 ovl_aio_put(aio_req);
289 struct ovl_aio_req *aio_req = container_of(iocb,
291 struct kiocb *orig_iocb = aio_req->orig_iocb;
293 ovl_aio_cleanup_handler(aio_req);
322 struct ovl_aio_req *aio_req;
325 aio_req = kmem_cache_zalloc(ovl_aio_request_cachep, GFP_KERNEL);
326 if (!aio_req)
330 aio_req->orig_iocb = iocb;
331 kiocb_clone(&aio_req->iocb, iocb, get_file(real.file));
332 aio_req->iocb.ki_complete = ovl_aio_rw_complete;
333 refcount_set(&aio_req->ref, 2);
334 ret = vfs_iocb_iter_read(real.file, &aio_req->iocb, iter);
335 ovl_aio_put(aio_req);
337 ovl_aio_cleanup_handler(aio_req);
389 struct ovl_aio_req *aio_req;
392 aio_req = kmem_cache_zalloc(ovl_aio_request_cachep, GFP_KERNEL);
393 if (!aio_req)
401 aio_req->orig_iocb = iocb;
402 kiocb_clone(&aio_req->iocb, iocb, get_file(real.file));
403 aio_req->iocb.ki_flags = ifl;
404 aio_req->iocb.ki_complete = ovl_aio_rw_complete;
405 refcount_set(&aio_req->ref, 2);
406 ret = vfs_iocb_iter_write(real.file, &aio_req->iocb, iter);
407 ovl_aio_put(aio_req);
409 ovl_aio_cleanup_handler(aio_req);