History

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!

Ilya Dryomov committed 11 years ago

Commit 7a6fdeb1 parent bfa76d45 files · +4 −192Browse files

Unified · Split

5 files
  1. include/linux/ceph/ceph_fs.h +0 −36
  2. include/linux/ceph/mon_client.h +1 −8
  3. net/ceph/ceph_strings.c +0 −14
  4. net/ceph/debugfs.c +0 −2
  5. net/ceph/mon_client.c +3 −132
include/linux/ceph/ceph_fs.h+0−36
@@ -158,17 +158,6 @@ enum { · 157 unmodified lines
158158 };
159159
160160
161−/* pool operations */
162−enum {
163− POOL_OP_CREATE = 0x01,
164− POOL_OP_DELETE = 0x02,
165− POOL_OP_AUID_CHANGE = 0x03,
166− POOL_OP_CREATE_SNAP = 0x11,
167− POOL_OP_DELETE_SNAP = 0x12,
168− POOL_OP_CREATE_UNMANAGED_SNAP = 0x21,
169− POOL_OP_DELETE_UNMANAGED_SNAP = 0x22,
170−};
171−
172161 struct ceph_mon_request_header {
173162 __le64 have_version;
174163 __le16 session_mon;
@@ -191,31 +180,6 @@ struct ceph_mon_statfs_reply { · 16 unmodified lines
191180 struct ceph_statfs st;
192181 } __attribute__ ((packed));
193182
194−const char *ceph_pool_op_name(int op);
195−
196−struct ceph_mon_poolop {
197− struct ceph_mon_request_header monhdr;
198− struct ceph_fsid fsid;
199− __le32 pool;
200− __le32 op;
201− __le64 auid;
202− __le64 snapid;
203− __le32 name_len;
204−} __attribute__ ((packed));
205−
206−struct ceph_mon_poolop_reply {
207− struct ceph_mon_request_header monhdr;
208− struct ceph_fsid fsid;
209− __le32 reply_code;
210− __le32 epoch;
211− char has_data;
212− char data[0];
213−} __attribute__ ((packed));
214−
215−struct ceph_mon_unmanaged_snap {
216− __le64 snapid;
217−} __attribute__ ((packed));
218−
219183 struct ceph_osd_getmap {
220184 struct ceph_mon_request_header monhdr;
221185 struct ceph_fsid fsid;
include/linux/ceph/mon_client.h+1−8
@@ -40,7 +40,7 @@ struct ceph_mon_request { · 39 unmodified lines
4040 };
4141
4242 /*
43− * ceph_mon_generic_request is being used for the statfs, poolop and
43+ * ceph_mon_generic_request is being used for the statfs and
4444 * mon_get_version requests which are being done a bit differently
4545 * because we need to get data back to the caller
4646 */
@@ -50,7 +50,6 @@ struct ceph_mon_generic_request { · 3 unmodified lines
5050 struct rb_node node;
5151 int result;
5252 void *buf;
53− int buf_len;
5453 struct completion completion;
5554 struct ceph_msg *request; /* original request */
5655 struct ceph_msg *reply; /* and reply */
@@ -117,10 +116,4 @@ extern int ceph_monc_open_session(struct ceph_mon_client *monc); · 60 unmodified lines
117116
118117 extern int ceph_monc_validate_auth(struct ceph_mon_client *monc);
119118
120−extern int ceph_monc_create_snapid(struct ceph_mon_client *monc,
121− u32 pool, u64 *snapid);
122−
123−extern int ceph_monc_delete_snapid(struct ceph_mon_client *monc,
124− u32 pool, u64 snapid);
125−
126119 #endif
net/ceph/ceph_strings.c+0−14
@@ -42,17 +42,3 @@ const char *ceph_osd_state_name(int s) · 41 unmodified lines
4242 return "???";
4343 }
4444 }
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−}
net/ceph/debugfs.c+0−2
@@ -127,8 +127,6 @@ static int monc_show(struct seq_file *s, void *p) · 126 unmodified lines
127127 op = le16_to_cpu(req->request->hdr.type);
128128 if (op == CEPH_MSG_STATFS)
129129 seq_printf(s, "%llu statfs\n", req->tid);
130− else if (op == CEPH_MSG_POOLOP)
131− seq_printf(s, "%llu poolop\n", req->tid);
132130 else if (op == CEPH_MSG_MON_GET_VERSION)
133131 seq_printf(s, "%llu mon_get_version", req->tid);
134132 else
net/ceph/mon_client.c+3−132
@@ -410,7 +410,7 @@ out_unlocked: · 409 unmodified lines
410410 }
411411
412412 /*
413− * generic requests (e.g., statfs, poolop)
413+ * generic requests (currently statfs, mon_get_version)
414414 */
415415 static struct ceph_mon_generic_request *__lookup_generic_req(
416416 struct ceph_mon_client *monc, u64 tid)
@@ -569,7 +569,7 @@ static void handle_statfs_reply(struct ceph_mon_client *monc, · 152 unmodified lines
569569 return;
570570
571571 bad:
572− pr_err("corrupt generic reply, tid %llu\n", tid);
572+ pr_err("corrupt statfs reply, tid %llu\n", tid);
573573 ceph_msg_dump(msg);
574574 }
575575
@@ -588,7 +588,6 @@ int ceph_monc_do_statfs(struct ceph_mon_client *monc, struct ceph_statfs *buf) · 12 unmodified lines
588588
589589 kref_init(&req->kref);
590590 req->buf = buf;
591− req->buf_len = sizeof(*buf);
592591 init_completion(&req->completion);
593592
594593 err = -ENOMEM;
@@ -647,7 +646,7 @@ static void handle_get_version_reply(struct ceph_mon_client *monc, · 52 unmodified lines
647646
648647 return;
649648 bad:
650− pr_err("corrupt mon_get_version reply\n");
649+ pr_err("corrupt mon_get_version reply, tid %llu\n", tid);
651650 ceph_msg_dump(msg);
652651 }
653652
@@ -670,7 +669,6 @@ int ceph_monc_do_get_version(struct ceph_mon_client *monc, const char *what, · 16 unmodified lines
670669
671670 kref_init(&req->kref);
672671 req->buf = newest;
673− req->buf_len = sizeof(*newest);
674672 init_completion(&req->completion);
675673
676674 req->request = ceph_msg_new(CEPH_MSG_MON_GET_VERSION,
@@ -706,128 +704,6 @@ out: · 29 unmodified lines
706704 }
707705 EXPORT_SYMBOL(ceph_monc_do_get_version);
708706
709−/*
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−
831707 /*
832708 * Resend pending generic requests.
833709 */
@@ -1112,10 +988,6 @@ static void dispatch(struct ceph_connection *con, struct ceph_msg *msg) · 278 unmodified lines
1112988 handle_get_version_reply(monc, msg);
1113989 break;
1114990
1115− case CEPH_MSG_POOLOP_REPLY:
1116− handle_poolop_reply(monc, msg);
1117− break;
1118−
1119991 case CEPH_MSG_MON_MAP:
1120992 ceph_monc_handle_map(monc, msg);
1121993 break;
@@ -1154,7 +1026,6 @@ static struct ceph_msg *mon_alloc_msg(struct ceph_connection *con, · 32 unmodified lines
11541026 case CEPH_MSG_MON_SUBSCRIBE_ACK:
11551027 m = ceph_msg_get(monc->m_subscribe_ack);
11561028 break;
1157− case CEPH_MSG_POOLOP_REPLY:
11581029 case CEPH_MSG_STATFS_REPLY:
11591030 return get_generic_reply(con, hdr, skip);
11601031 case CEPH_MSG_AUTH_REPLY:

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t