Lines Matching defs:aio_req
279 static inline void ovl_aio_put(struct ovl_aio_req *aio_req)
281 if (refcount_dec_and_test(&aio_req->ref)) {
282 fput(aio_req->iocb.ki_filp);
283 kmem_cache_free(ovl_aio_request_cachep, aio_req);
287 static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
289 struct kiocb *iocb = &aio_req->iocb;
290 struct kiocb *orig_iocb = aio_req->orig_iocb;
300 ovl_aio_put(aio_req);
305 struct ovl_aio_req *aio_req = container_of(iocb,
307 struct kiocb *orig_iocb = aio_req->orig_iocb;
309 ovl_aio_cleanup_handler(aio_req);
337 struct ovl_aio_req *aio_req;
340 aio_req = kmem_cache_zalloc(ovl_aio_request_cachep, GFP_KERNEL);
341 if (!aio_req)
344 aio_req->orig_iocb = iocb;
345 kiocb_clone(&aio_req->iocb, iocb, get_file(real.file));
346 aio_req->iocb.ki_complete = ovl_aio_rw_complete;
347 refcount_set(&aio_req->ref, 2);
348 ret = vfs_iocb_iter_read(real.file, &aio_req->iocb, iter);
349 ovl_aio_put(aio_req);
351 ovl_aio_cleanup_handler(aio_req);
408 struct ovl_aio_req *aio_req;
411 aio_req = kmem_cache_zalloc(ovl_aio_request_cachep, GFP_KERNEL);
412 if (!aio_req)
415 aio_req->orig_iocb = iocb;
416 kiocb_clone(&aio_req->iocb, iocb, get_file(real.file));
417 aio_req->iocb.ki_flags = ifl;
418 aio_req->iocb.ki_complete = ovl_aio_rw_complete;
419 refcount_set(&aio_req->ref, 2);
420 kiocb_start_write(&aio_req->iocb);
421 ret = vfs_iocb_iter_write(real.file, &aio_req->iocb, iter);
422 ovl_aio_put(aio_req);
424 ovl_aio_cleanup_handler(aio_req);