libceph: fsmap.user subscription support
authorYan, Zheng <zyan@redhat.com>
Thu, 7 Apr 2016 03:34:43 +0000 (11:34 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 28 Jul 2016 01:00:40 +0000 (03:00 +0200)
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
include/linux/ceph/ceph_fs.h
include/linux/ceph/mon_client.h
net/ceph/mon_client.c

index 6bc7730..7868d60 100644 (file)
@@ -121,6 +121,7 @@ struct ceph_dir_layout {
 
 /* client <-> mds */
 #define CEPH_MSG_MDS_MAP                21
+#define CEPH_MSG_FS_MAP_USER            103
 
 #define CEPH_MSG_CLIENT_SESSION         22
 #define CEPH_MSG_CLIENT_RECONNECT       23
index e2a92df..24d704d 100644 (file)
@@ -95,7 +95,7 @@ struct ceph_mon_client {
                struct ceph_mon_subscribe_item item;
                bool want;
                u32 have; /* epoch */
-       } subs[3];
+       } subs[4];
        int fs_cluster_id; /* "mdsmap.<id>" sub */
 
 #ifdef CONFIG_DEBUG_FS
@@ -111,9 +111,10 @@ extern int ceph_monc_init(struct ceph_mon_client *monc, struct ceph_client *cl);
 extern void ceph_monc_stop(struct ceph_mon_client *monc);
 
 enum {
-       CEPH_SUB_MDSMAP = 0,
-       CEPH_SUB_MONMAP,
+       CEPH_SUB_MONMAP = 0,
        CEPH_SUB_OSDMAP,
+       CEPH_SUB_FSMAP,
+       CEPH_SUB_MDSMAP,
 };
 
 extern const char *ceph_sub_str[];
index 37c38a7..c83326c 100644 (file)
@@ -227,9 +227,10 @@ static void __schedule_delayed(struct ceph_mon_client *monc)
 }
 
 const char *ceph_sub_str[] = {
-       [CEPH_SUB_MDSMAP] = "mdsmap",
        [CEPH_SUB_MONMAP] = "monmap",
        [CEPH_SUB_OSDMAP] = "osdmap",
+       [CEPH_SUB_FSMAP]  = "fsmap.user",
+       [CEPH_SUB_MDSMAP] = "mdsmap",
 };
 
 /*
@@ -1193,6 +1194,7 @@ static struct ceph_msg *mon_alloc_msg(struct ceph_connection *con,
        case CEPH_MSG_MON_MAP:
        case CEPH_MSG_MDS_MAP:
        case CEPH_MSG_OSD_MAP:
+       case CEPH_MSG_FS_MAP_USER:
                m = ceph_msg_new(type, front_len, GFP_NOFS, false);
                if (!m)
                        return NULL;    /* ENOMEM--return skip == 0 */