libceph: fsmap.user subscription support

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Yan, Zheng 2016-04-07 11:34:43 +08:00 committed by Ilya Dryomov
parent f49d1e058d
commit 0cabbd94ff
3 changed files with 8 additions and 4 deletions

View File

@ -121,6 +121,7 @@ struct ceph_dir_layout {
/* client <-> mds */ /* client <-> mds */
#define CEPH_MSG_MDS_MAP 21 #define CEPH_MSG_MDS_MAP 21
#define CEPH_MSG_FS_MAP_USER 103
#define CEPH_MSG_CLIENT_SESSION 22 #define CEPH_MSG_CLIENT_SESSION 22
#define CEPH_MSG_CLIENT_RECONNECT 23 #define CEPH_MSG_CLIENT_RECONNECT 23

View File

@ -95,7 +95,7 @@ struct ceph_mon_client {
struct ceph_mon_subscribe_item item; struct ceph_mon_subscribe_item item;
bool want; bool want;
u32 have; /* epoch */ u32 have; /* epoch */
} subs[3]; } subs[4];
int fs_cluster_id; /* "mdsmap.<id>" sub */ int fs_cluster_id; /* "mdsmap.<id>" sub */
#ifdef CONFIG_DEBUG_FS #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); extern void ceph_monc_stop(struct ceph_mon_client *monc);
enum { enum {
CEPH_SUB_MDSMAP = 0, CEPH_SUB_MONMAP = 0,
CEPH_SUB_MONMAP,
CEPH_SUB_OSDMAP, CEPH_SUB_OSDMAP,
CEPH_SUB_FSMAP,
CEPH_SUB_MDSMAP,
}; };
extern const char *ceph_sub_str[]; extern const char *ceph_sub_str[];

View File

@ -227,9 +227,10 @@ static void __schedule_delayed(struct ceph_mon_client *monc)
} }
const char *ceph_sub_str[] = { const char *ceph_sub_str[] = {
[CEPH_SUB_MDSMAP] = "mdsmap",
[CEPH_SUB_MONMAP] = "monmap", [CEPH_SUB_MONMAP] = "monmap",
[CEPH_SUB_OSDMAP] = "osdmap", [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_MON_MAP:
case CEPH_MSG_MDS_MAP: case CEPH_MSG_MDS_MAP:
case CEPH_MSG_OSD_MAP: case CEPH_MSG_OSD_MAP:
case CEPH_MSG_FS_MAP_USER:
m = ceph_msg_new(type, front_len, GFP_NOFS, false); m = ceph_msg_new(type, front_len, GFP_NOFS, false);
if (!m) if (!m)
return NULL; /* ENOMEM--return skip == 0 */ return NULL; /* ENOMEM--return skip == 0 */