• Home
  • Raw
  • Download

Lines Matching refs:req

486 	struct ceph_mon_generic_request *req =  in DEFINE_RB_FUNCS()  local
489 dout("%s greq %p request %p reply %p\n", __func__, req, req->request, in DEFINE_RB_FUNCS()
490 req->reply); in DEFINE_RB_FUNCS()
491 WARN_ON(!RB_EMPTY_NODE(&req->node)); in DEFINE_RB_FUNCS()
493 if (req->reply) in DEFINE_RB_FUNCS()
494 ceph_msg_put(req->reply); in DEFINE_RB_FUNCS()
495 if (req->request) in DEFINE_RB_FUNCS()
496 ceph_msg_put(req->request); in DEFINE_RB_FUNCS()
498 kfree(req); in DEFINE_RB_FUNCS()
501 static void put_generic_request(struct ceph_mon_generic_request *req) in put_generic_request() argument
503 if (req) in put_generic_request()
504 kref_put(&req->kref, release_generic_request); in put_generic_request()
507 static void get_generic_request(struct ceph_mon_generic_request *req) in get_generic_request() argument
509 kref_get(&req->kref); in get_generic_request()
515 struct ceph_mon_generic_request *req; in alloc_generic_request() local
517 req = kzalloc(sizeof(*req), gfp); in alloc_generic_request()
518 if (!req) in alloc_generic_request()
521 req->monc = monc; in alloc_generic_request()
522 kref_init(&req->kref); in alloc_generic_request()
523 RB_CLEAR_NODE(&req->node); in alloc_generic_request()
524 init_completion(&req->completion); in alloc_generic_request()
526 dout("%s greq %p\n", __func__, req); in alloc_generic_request()
527 return req; in alloc_generic_request()
530 static void register_generic_request(struct ceph_mon_generic_request *req) in register_generic_request() argument
532 struct ceph_mon_client *monc = req->monc; in register_generic_request()
534 WARN_ON(req->tid); in register_generic_request()
536 get_generic_request(req); in register_generic_request()
537 req->tid = ++monc->last_tid; in register_generic_request()
538 insert_generic_request(&monc->generic_request_tree, req); in register_generic_request()
542 struct ceph_mon_generic_request *req) in send_generic_request() argument
544 WARN_ON(!req->tid); in send_generic_request()
546 dout("%s greq %p tid %llu\n", __func__, req, req->tid); in send_generic_request()
547 req->request->hdr.tid = cpu_to_le64(req->tid); in send_generic_request()
548 ceph_con_send(&monc->con, ceph_msg_get(req->request)); in send_generic_request()
551 static void __finish_generic_request(struct ceph_mon_generic_request *req) in __finish_generic_request() argument
553 struct ceph_mon_client *monc = req->monc; in __finish_generic_request()
555 dout("%s greq %p tid %llu\n", __func__, req, req->tid); in __finish_generic_request()
556 erase_generic_request(&monc->generic_request_tree, req); in __finish_generic_request()
558 ceph_msg_revoke(req->request); in __finish_generic_request()
559 ceph_msg_revoke_incoming(req->reply); in __finish_generic_request()
562 static void finish_generic_request(struct ceph_mon_generic_request *req) in finish_generic_request() argument
564 __finish_generic_request(req); in finish_generic_request()
565 put_generic_request(req); in finish_generic_request()
568 static void complete_generic_request(struct ceph_mon_generic_request *req) in complete_generic_request() argument
570 if (req->complete_cb) in complete_generic_request()
571 req->complete_cb(req); in complete_generic_request()
573 complete_all(&req->completion); in complete_generic_request()
574 put_generic_request(req); in complete_generic_request()
577 static void cancel_generic_request(struct ceph_mon_generic_request *req) in cancel_generic_request() argument
579 struct ceph_mon_client *monc = req->monc; in cancel_generic_request()
582 dout("%s greq %p tid %llu\n", __func__, req, req->tid); in cancel_generic_request()
586 req->tid); in cancel_generic_request()
588 WARN_ON(lookup_req != req); in cancel_generic_request()
589 finish_generic_request(req); in cancel_generic_request()
595 static int wait_generic_request(struct ceph_mon_generic_request *req) in wait_generic_request() argument
599 dout("%s greq %p tid %llu\n", __func__, req, req->tid); in wait_generic_request()
600 ret = wait_for_completion_interruptible(&req->completion); in wait_generic_request()
602 cancel_generic_request(req); in wait_generic_request()
604 ret = req->result; /* completed */ in wait_generic_request()
614 struct ceph_mon_generic_request *req; in get_generic_reply() local
619 req = lookup_generic_request(&monc->generic_request_tree, tid); in get_generic_reply()
620 if (!req) { in get_generic_reply()
625 dout("get_generic_reply %lld got %p\n", tid, req->reply); in get_generic_reply()
627 m = ceph_msg_get(req->reply); in get_generic_reply()
644 struct ceph_mon_generic_request *req; in handle_statfs_reply() local
654 req = lookup_generic_request(&monc->generic_request_tree, tid); in handle_statfs_reply()
655 if (!req) { in handle_statfs_reply()
660 req->result = 0; in handle_statfs_reply()
661 *req->u.st = reply->st; /* struct */ in handle_statfs_reply()
662 __finish_generic_request(req); in handle_statfs_reply()
665 complete_generic_request(req); in handle_statfs_reply()
678 struct ceph_mon_generic_request *req; in ceph_monc_do_statfs() local
682 req = alloc_generic_request(monc, GFP_NOFS); in ceph_monc_do_statfs()
683 if (!req) in ceph_monc_do_statfs()
686 req->request = ceph_msg_new(CEPH_MSG_STATFS, sizeof(*h), GFP_NOFS, in ceph_monc_do_statfs()
688 if (!req->request) in ceph_monc_do_statfs()
691 req->reply = ceph_msg_new(CEPH_MSG_STATFS_REPLY, 64, GFP_NOFS, true); in ceph_monc_do_statfs()
692 if (!req->reply) in ceph_monc_do_statfs()
695 req->u.st = buf; in ceph_monc_do_statfs()
698 register_generic_request(req); in ceph_monc_do_statfs()
700 h = req->request->front.iov_base; in ceph_monc_do_statfs()
705 send_generic_request(monc, req); in ceph_monc_do_statfs()
708 ret = wait_generic_request(req); in ceph_monc_do_statfs()
710 put_generic_request(req); in ceph_monc_do_statfs()
718 struct ceph_mon_generic_request *req; in handle_get_version_reply() local
732 req = lookup_generic_request(&monc->generic_request_tree, handle); in handle_get_version_reply()
733 if (!req) { in handle_get_version_reply()
738 req->result = 0; in handle_get_version_reply()
739 req->u.newest = ceph_decode_64(&p); in handle_get_version_reply()
740 __finish_generic_request(req); in handle_get_version_reply()
743 complete_generic_request(req); in handle_get_version_reply()
755 struct ceph_mon_generic_request *req; in __ceph_monc_get_version() local
757 req = alloc_generic_request(monc, GFP_NOIO); in __ceph_monc_get_version()
758 if (!req) in __ceph_monc_get_version()
761 req->request = ceph_msg_new(CEPH_MSG_MON_GET_VERSION, in __ceph_monc_get_version()
764 if (!req->request) in __ceph_monc_get_version()
767 req->reply = ceph_msg_new(CEPH_MSG_MON_GET_VERSION_REPLY, 32, GFP_NOIO, in __ceph_monc_get_version()
769 if (!req->reply) in __ceph_monc_get_version()
772 req->complete_cb = cb; in __ceph_monc_get_version()
773 req->private_data = private_data; in __ceph_monc_get_version()
776 register_generic_request(req); in __ceph_monc_get_version()
778 void *p = req->request->front.iov_base; in __ceph_monc_get_version()
779 void *const end = p + req->request->front_alloc_len; in __ceph_monc_get_version()
781 ceph_encode_64(&p, req->tid); /* handle */ in __ceph_monc_get_version()
785 send_generic_request(monc, req); in __ceph_monc_get_version()
788 return req; in __ceph_monc_get_version()
791 put_generic_request(req); in __ceph_monc_get_version()
803 struct ceph_mon_generic_request *req; in ceph_monc_get_version() local
806 req = __ceph_monc_get_version(monc, what, NULL, 0); in ceph_monc_get_version()
807 if (IS_ERR(req)) in ceph_monc_get_version()
808 return PTR_ERR(req); in ceph_monc_get_version()
810 ret = wait_generic_request(req); in ceph_monc_get_version()
812 *newest = req->u.newest; in ceph_monc_get_version()
814 put_generic_request(req); in ceph_monc_get_version()
827 struct ceph_mon_generic_request *req; in ceph_monc_get_version_async() local
829 req = __ceph_monc_get_version(monc, what, cb, private_data); in ceph_monc_get_version_async()
830 if (IS_ERR(req)) in ceph_monc_get_version_async()
831 return PTR_ERR(req); in ceph_monc_get_version_async()
833 put_generic_request(req); in ceph_monc_get_version_async()
841 struct ceph_mon_generic_request *req; in handle_command_ack() local
853 req = lookup_generic_request(&monc->generic_request_tree, tid); in handle_command_ack()
854 if (!req) { in handle_command_ack()
859 req->result = ceph_decode_32(&p); in handle_command_ack()
860 __finish_generic_request(req); in handle_command_ack()
863 complete_generic_request(req); in handle_command_ack()
874 struct ceph_mon_generic_request *req; in ceph_monc_blacklist_add() local
879 req = alloc_generic_request(monc, GFP_NOIO); in ceph_monc_blacklist_add()
880 if (!req) in ceph_monc_blacklist_add()
883 req->request = ceph_msg_new(CEPH_MSG_MON_COMMAND, 256, GFP_NOIO, true); in ceph_monc_blacklist_add()
884 if (!req->request) in ceph_monc_blacklist_add()
887 req->reply = ceph_msg_new(CEPH_MSG_MON_COMMAND_ACK, 512, GFP_NOIO, in ceph_monc_blacklist_add()
889 if (!req->reply) in ceph_monc_blacklist_add()
893 register_generic_request(req); in ceph_monc_blacklist_add()
894 h = req->request->front.iov_base; in ceph_monc_blacklist_add()
905 send_generic_request(monc, req); in ceph_monc_blacklist_add()
908 ret = wait_generic_request(req); in ceph_monc_blacklist_add()
910 put_generic_request(req); in ceph_monc_blacklist_add()
920 struct ceph_mon_generic_request *req; in __resend_generic_request() local
924 req = rb_entry(p, struct ceph_mon_generic_request, node); in __resend_generic_request()
925 ceph_msg_revoke(req->request); in __resend_generic_request()
926 ceph_msg_revoke_incoming(req->reply); in __resend_generic_request()
927 ceph_con_send(&monc->con, ceph_msg_get(req->request)); in __resend_generic_request()