• Home
  • Raw
  • Download

Lines Matching refs:req

428 	struct kiocb *req = NULL;  in __aio_get_req()  local
432 req = kmem_cache_alloc(kiocb_cachep, GFP_KERNEL); in __aio_get_req()
433 if (unlikely(!req)) in __aio_get_req()
436 req->ki_flags = 0; in __aio_get_req()
437 req->ki_users = 2; in __aio_get_req()
438 req->ki_key = 0; in __aio_get_req()
439 req->ki_ctx = ctx; in __aio_get_req()
440 req->ki_cancel = NULL; in __aio_get_req()
441 req->ki_retry = NULL; in __aio_get_req()
442 req->ki_dtor = NULL; in __aio_get_req()
443 req->private = NULL; in __aio_get_req()
444 req->ki_iovec = NULL; in __aio_get_req()
445 INIT_LIST_HEAD(&req->ki_run_list); in __aio_get_req()
446 req->ki_eventfd = NULL; in __aio_get_req()
454 list_add(&req->ki_list, &ctx->active_reqs); in __aio_get_req()
462 kmem_cache_free(kiocb_cachep, req); in __aio_get_req()
463 req = NULL; in __aio_get_req()
466 return req; in __aio_get_req()
471 struct kiocb *req; in aio_get_req() local
476 req = __aio_get_req(ctx); in aio_get_req()
477 if (unlikely(NULL == req)) { in aio_get_req()
479 req = __aio_get_req(ctx); in aio_get_req()
481 return req; in aio_get_req()
484 static inline void really_put_req(struct kioctx *ctx, struct kiocb *req) in really_put_req() argument
488 if (req->ki_dtor) in really_put_req()
489 req->ki_dtor(req); in really_put_req()
490 if (req->ki_iovec != &req->ki_inline_vec) in really_put_req()
491 kfree(req->ki_iovec); in really_put_req()
492 kmem_cache_free(kiocb_cachep, req); in really_put_req()
503 struct kiocb *req = list_kiocb(fput_head.next); in aio_fput_routine() local
504 struct kioctx *ctx = req->ki_ctx; in aio_fput_routine()
506 list_del(&req->ki_list); in aio_fput_routine()
510 if (req->ki_filp != NULL) in aio_fput_routine()
511 __fput(req->ki_filp); in aio_fput_routine()
512 if (req->ki_eventfd != NULL) in aio_fput_routine()
513 __fput(req->ki_eventfd); in aio_fput_routine()
517 really_put_req(ctx, req); in aio_fput_routine()
529 static int __aio_put_req(struct kioctx *ctx, struct kiocb *req) in __aio_put_req() argument
534 req, atomic_long_read(&req->ki_filp->f_count)); in __aio_put_req()
538 req->ki_users--; in __aio_put_req()
539 BUG_ON(req->ki_users < 0); in __aio_put_req()
540 if (likely(req->ki_users)) in __aio_put_req()
542 list_del(&req->ki_list); /* remove from active_reqs */ in __aio_put_req()
543 req->ki_cancel = NULL; in __aio_put_req()
544 req->ki_retry = NULL; in __aio_put_req()
552 if (unlikely(atomic_long_dec_and_test(&req->ki_filp->f_count))) in __aio_put_req()
555 req->ki_filp = NULL; in __aio_put_req()
556 if (req->ki_eventfd != NULL) { in __aio_put_req()
557 if (unlikely(atomic_long_dec_and_test(&req->ki_eventfd->f_count))) in __aio_put_req()
560 req->ki_eventfd = NULL; in __aio_put_req()
565 list_add(&req->ki_list, &fput_head); in __aio_put_req()
569 really_put_req(ctx, req); in __aio_put_req()
577 int aio_put_req(struct kiocb *req) in aio_put_req() argument
579 struct kioctx *ctx = req->ki_ctx; in aio_put_req()
582 ret = __aio_put_req(ctx, req); in aio_put_req()
1588 struct kiocb *req; in io_submit_one() local
1612 req = aio_get_req(ctx); /* returns with 2 references to req */ in io_submit_one()
1613 if (unlikely(!req)) { in io_submit_one()
1617 req->ki_filp = file; in io_submit_one()
1625 req->ki_eventfd = eventfd_fget((int) iocb->aio_resfd); in io_submit_one()
1626 if (IS_ERR(req->ki_eventfd)) { in io_submit_one()
1627 ret = PTR_ERR(req->ki_eventfd); in io_submit_one()
1628 req->ki_eventfd = NULL; in io_submit_one()
1633 ret = put_user(req->ki_key, &user_iocb->aio_key); in io_submit_one()
1639 req->ki_obj.user = user_iocb; in io_submit_one()
1640 req->ki_user_data = iocb->aio_data; in io_submit_one()
1641 req->ki_pos = iocb->aio_offset; in io_submit_one()
1643 req->ki_buf = (char __user *)(unsigned long)iocb->aio_buf; in io_submit_one()
1644 req->ki_left = req->ki_nbytes = iocb->aio_nbytes; in io_submit_one()
1645 req->ki_opcode = iocb->aio_lio_opcode; in io_submit_one()
1646 init_waitqueue_func_entry(&req->ki_wait, aio_wake_function); in io_submit_one()
1647 INIT_LIST_HEAD(&req->ki_wait.task_list); in io_submit_one()
1649 ret = aio_setup_iocb(req); in io_submit_one()
1655 aio_run_iocb(req); in io_submit_one()
1662 aio_put_req(req); /* drop extra ref to req */ in io_submit_one()
1666 aio_put_req(req); /* drop extra ref to req */ in io_submit_one()
1667 aio_put_req(req); /* drop i/o ref to req */ in io_submit_one()