diff options
author | Ilya Dryomov <idryomov@redhat.com> | 2014-12-22 11:14:26 -0500 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2015-02-19 05:31:37 -0500 |
commit | 7a6fdeb2b1e93548854063c46c9724458564c76b (patch) | |
tree | 2cbb3fbb722a6611e95e41d35eee1ff4188caccb /net/ceph | |
parent | bfa76d49576599a4b9f9b7a71f23d73d6dcff735 (diff) |
libceph: nuke pool op infrastructure
On Mon, Dec 22, 2014 at 5:35 PM, Sage Weil <sage@newdream.net> wrote:
> On Mon, 22 Dec 2014, Ilya Dryomov wrote:
>> Actually, pool op stuff has been unused for over two years - looks like
>> it was added for rbd create_snap and that got ripped out in 2012. It's
>> unlikely we'd ever need to manage pools or snaps from the kernel client
>> so I think it makes sense to nuke it. Sage?
>
> Yep!
Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
Diffstat (limited to 'net/ceph')
-rw-r--r-- | net/ceph/ceph_strings.c | 14 | ||||
-rw-r--r-- | net/ceph/debugfs.c | 2 | ||||
-rw-r--r-- | net/ceph/mon_client.c | 135 |
3 files changed, 3 insertions, 148 deletions
diff --git a/net/ceph/ceph_strings.c b/net/ceph/ceph_strings.c index 30560202f57b..139a9cb19b0c 100644 --- a/net/ceph/ceph_strings.c +++ b/net/ceph/ceph_strings.c | |||
@@ -42,17 +42,3 @@ const char *ceph_osd_state_name(int s) | |||
42 | return "???"; | 42 | return "???"; |
43 | } | 43 | } |
44 | } | 44 | } |
45 | |||
46 | const char *ceph_pool_op_name(int op) | ||
47 | { | ||
48 | switch (op) { | ||
49 | case POOL_OP_CREATE: return "create"; | ||
50 | case POOL_OP_DELETE: return "delete"; | ||
51 | case POOL_OP_AUID_CHANGE: return "auid change"; | ||
52 | case POOL_OP_CREATE_SNAP: return "create snap"; | ||
53 | case POOL_OP_DELETE_SNAP: return "delete snap"; | ||
54 | case POOL_OP_CREATE_UNMANAGED_SNAP: return "create unmanaged snap"; | ||
55 | case POOL_OP_DELETE_UNMANAGED_SNAP: return "delete unmanaged snap"; | ||
56 | } | ||
57 | return "???"; | ||
58 | } | ||
diff --git a/net/ceph/debugfs.c b/net/ceph/debugfs.c index d2d525529f87..14d9995097cc 100644 --- a/net/ceph/debugfs.c +++ b/net/ceph/debugfs.c | |||
@@ -127,8 +127,6 @@ static int monc_show(struct seq_file *s, void *p) | |||
127 | op = le16_to_cpu(req->request->hdr.type); | 127 | op = le16_to_cpu(req->request->hdr.type); |
128 | if (op == CEPH_MSG_STATFS) | 128 | if (op == CEPH_MSG_STATFS) |
129 | seq_printf(s, "%llu statfs\n", req->tid); | 129 | seq_printf(s, "%llu statfs\n", req->tid); |
130 | else if (op == CEPH_MSG_POOLOP) | ||
131 | seq_printf(s, "%llu poolop\n", req->tid); | ||
132 | else if (op == CEPH_MSG_MON_GET_VERSION) | 130 | else if (op == CEPH_MSG_MON_GET_VERSION) |
133 | seq_printf(s, "%llu mon_get_version", req->tid); | 131 | seq_printf(s, "%llu mon_get_version", req->tid); |
134 | else | 132 | else |
diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c index f2148e22b148..02e105c6865f 100644 --- a/net/ceph/mon_client.c +++ b/net/ceph/mon_client.c | |||
@@ -410,7 +410,7 @@ out_unlocked: | |||
410 | } | 410 | } |
411 | 411 | ||
412 | /* | 412 | /* |
413 | * generic requests (e.g., statfs, poolop) | 413 | * generic requests (currently statfs, mon_get_version) |
414 | */ | 414 | */ |
415 | static struct ceph_mon_generic_request *__lookup_generic_req( | 415 | static struct ceph_mon_generic_request *__lookup_generic_req( |
416 | struct ceph_mon_client *monc, u64 tid) | 416 | struct ceph_mon_client *monc, u64 tid) |
@@ -569,7 +569,7 @@ static void handle_statfs_reply(struct ceph_mon_client *monc, | |||
569 | return; | 569 | return; |
570 | 570 | ||
571 | bad: | 571 | bad: |
572 | pr_err("corrupt generic reply, tid %llu\n", tid); | 572 | pr_err("corrupt statfs reply, tid %llu\n", tid); |
573 | ceph_msg_dump(msg); | 573 | ceph_msg_dump(msg); |
574 | } | 574 | } |
575 | 575 | ||
@@ -588,7 +588,6 @@ int ceph_monc_do_statfs(struct ceph_mon_client *monc, struct ceph_statfs *buf) | |||
588 | 588 | ||
589 | kref_init(&req->kref); | 589 | kref_init(&req->kref); |
590 | req->buf = buf; | 590 | req->buf = buf; |
591 | req->buf_len = sizeof(*buf); | ||
592 | init_completion(&req->completion); | 591 | init_completion(&req->completion); |
593 | 592 | ||
594 | err = -ENOMEM; | 593 | err = -ENOMEM; |
@@ -647,7 +646,7 @@ static void handle_get_version_reply(struct ceph_mon_client *monc, | |||
647 | 646 | ||
648 | return; | 647 | return; |
649 | bad: | 648 | bad: |
650 | pr_err("corrupt mon_get_version reply\n"); | 649 | pr_err("corrupt mon_get_version reply, tid %llu\n", tid); |
651 | ceph_msg_dump(msg); | 650 | ceph_msg_dump(msg); |
652 | } | 651 | } |
653 | 652 | ||
@@ -670,7 +669,6 @@ int ceph_monc_do_get_version(struct ceph_mon_client *monc, const char *what, | |||
670 | 669 | ||
671 | kref_init(&req->kref); | 670 | kref_init(&req->kref); |
672 | req->buf = newest; | 671 | req->buf = newest; |
673 | req->buf_len = sizeof(*newest); | ||
674 | init_completion(&req->completion); | 672 | init_completion(&req->completion); |
675 | 673 | ||
676 | req->request = ceph_msg_new(CEPH_MSG_MON_GET_VERSION, | 674 | req->request = ceph_msg_new(CEPH_MSG_MON_GET_VERSION, |
@@ -707,128 +705,6 @@ out: | |||
707 | EXPORT_SYMBOL(ceph_monc_do_get_version); | 705 | EXPORT_SYMBOL(ceph_monc_do_get_version); |
708 | 706 | ||
709 | /* | 707 | /* |
710 | * pool ops | ||
711 | */ | ||
712 | static int get_poolop_reply_buf(const char *src, size_t src_len, | ||
713 | char *dst, size_t dst_len) | ||
714 | { | ||
715 | u32 buf_len; | ||
716 | |||
717 | if (src_len != sizeof(u32) + dst_len) | ||
718 | return -EINVAL; | ||
719 | |||
720 | buf_len = le32_to_cpu(*(__le32 *)src); | ||
721 | if (buf_len != dst_len) | ||
722 | return -EINVAL; | ||
723 | |||
724 | memcpy(dst, src + sizeof(u32), dst_len); | ||
725 | return 0; | ||
726 | } | ||
727 | |||
728 | static void handle_poolop_reply(struct ceph_mon_client *monc, | ||
729 | struct ceph_msg *msg) | ||
730 | { | ||
731 | struct ceph_mon_generic_request *req; | ||
732 | struct ceph_mon_poolop_reply *reply = msg->front.iov_base; | ||
733 | u64 tid = le64_to_cpu(msg->hdr.tid); | ||
734 | |||
735 | if (msg->front.iov_len < sizeof(*reply)) | ||
736 | goto bad; | ||
737 | dout("handle_poolop_reply %p tid %llu\n", msg, tid); | ||
738 | |||
739 | mutex_lock(&monc->mutex); | ||
740 | req = __lookup_generic_req(monc, tid); | ||
741 | if (req) { | ||
742 | if (req->buf_len && | ||
743 | get_poolop_reply_buf(msg->front.iov_base + sizeof(*reply), | ||
744 | msg->front.iov_len - sizeof(*reply), | ||
745 | req->buf, req->buf_len) < 0) { | ||
746 | mutex_unlock(&monc->mutex); | ||
747 | goto bad; | ||
748 | } | ||
749 | req->result = le32_to_cpu(reply->reply_code); | ||
750 | get_generic_request(req); | ||
751 | } | ||
752 | mutex_unlock(&monc->mutex); | ||
753 | if (req) { | ||
754 | complete(&req->completion); | ||
755 | put_generic_request(req); | ||
756 | } | ||
757 | return; | ||
758 | |||
759 | bad: | ||
760 | pr_err("corrupt generic reply, tid %llu\n", tid); | ||
761 | ceph_msg_dump(msg); | ||
762 | } | ||
763 | |||
764 | /* | ||
765 | * Do a synchronous pool op. | ||
766 | */ | ||
767 | static int do_poolop(struct ceph_mon_client *monc, u32 op, | ||
768 | u32 pool, u64 snapid, | ||
769 | char *buf, int len) | ||
770 | { | ||
771 | struct ceph_mon_generic_request *req; | ||
772 | struct ceph_mon_poolop *h; | ||
773 | int err; | ||
774 | |||
775 | req = kzalloc(sizeof(*req), GFP_NOFS); | ||
776 | if (!req) | ||
777 | return -ENOMEM; | ||
778 | |||
779 | kref_init(&req->kref); | ||
780 | req->buf = buf; | ||
781 | req->buf_len = len; | ||
782 | init_completion(&req->completion); | ||
783 | |||
784 | err = -ENOMEM; | ||
785 | req->request = ceph_msg_new(CEPH_MSG_POOLOP, sizeof(*h), GFP_NOFS, | ||
786 | true); | ||
787 | if (!req->request) | ||
788 | goto out; | ||
789 | req->reply = ceph_msg_new(CEPH_MSG_POOLOP_REPLY, 1024, GFP_NOFS, | ||
790 | true); | ||
791 | if (!req->reply) | ||
792 | goto out; | ||
793 | |||
794 | /* fill out request */ | ||
795 | req->request->hdr.version = cpu_to_le16(2); | ||
796 | h = req->request->front.iov_base; | ||
797 | h->monhdr.have_version = 0; | ||
798 | h->monhdr.session_mon = cpu_to_le16(-1); | ||
799 | h->monhdr.session_mon_tid = 0; | ||
800 | h->fsid = monc->monmap->fsid; | ||
801 | h->pool = cpu_to_le32(pool); | ||
802 | h->op = cpu_to_le32(op); | ||
803 | h->auid = 0; | ||
804 | h->snapid = cpu_to_le64(snapid); | ||
805 | h->name_len = 0; | ||
806 | |||
807 | err = do_generic_request(monc, req); | ||
808 | |||
809 | out: | ||
810 | kref_put(&req->kref, release_generic_request); | ||
811 | return err; | ||
812 | } | ||
813 | |||
814 | int ceph_monc_create_snapid(struct ceph_mon_client *monc, | ||
815 | u32 pool, u64 *snapid) | ||
816 | { | ||
817 | return do_poolop(monc, POOL_OP_CREATE_UNMANAGED_SNAP, | ||
818 | pool, 0, (char *)snapid, sizeof(*snapid)); | ||
819 | |||
820 | } | ||
821 | EXPORT_SYMBOL(ceph_monc_create_snapid); | ||
822 | |||
823 | int ceph_monc_delete_snapid(struct ceph_mon_client *monc, | ||
824 | u32 pool, u64 snapid) | ||
825 | { | ||
826 | return do_poolop(monc, POOL_OP_CREATE_UNMANAGED_SNAP, | ||
827 | pool, snapid, NULL, 0); | ||
828 | |||
829 | } | ||
830 | |||
831 | /* | ||
832 | * Resend pending generic requests. | 708 | * Resend pending generic requests. |
833 | */ | 709 | */ |
834 | static void __resend_generic_request(struct ceph_mon_client *monc) | 710 | static void __resend_generic_request(struct ceph_mon_client *monc) |
@@ -1112,10 +988,6 @@ static void dispatch(struct ceph_connection *con, struct ceph_msg *msg) | |||
1112 | handle_get_version_reply(monc, msg); | 988 | handle_get_version_reply(monc, msg); |
1113 | break; | 989 | break; |
1114 | 990 | ||
1115 | case CEPH_MSG_POOLOP_REPLY: | ||
1116 | handle_poolop_reply(monc, msg); | ||
1117 | break; | ||
1118 | |||
1119 | case CEPH_MSG_MON_MAP: | 991 | case CEPH_MSG_MON_MAP: |
1120 | ceph_monc_handle_map(monc, msg); | 992 | ceph_monc_handle_map(monc, msg); |
1121 | break; | 993 | break; |
@@ -1154,7 +1026,6 @@ static struct ceph_msg *mon_alloc_msg(struct ceph_connection *con, | |||
1154 | case CEPH_MSG_MON_SUBSCRIBE_ACK: | 1026 | case CEPH_MSG_MON_SUBSCRIBE_ACK: |
1155 | m = ceph_msg_get(monc->m_subscribe_ack); | 1027 | m = ceph_msg_get(monc->m_subscribe_ack); |
1156 | break; | 1028 | break; |
1157 | case CEPH_MSG_POOLOP_REPLY: | ||
1158 | case CEPH_MSG_STATFS_REPLY: | 1029 | case CEPH_MSG_STATFS_REPLY: |
1159 | return get_generic_reply(con, hdr, skip); | 1030 | return get_generic_reply(con, hdr, skip); |
1160 | case CEPH_MSG_AUTH_REPLY: | 1031 | case CEPH_MSG_AUTH_REPLY: |