ceph: update to mon client protocol v15
The mon request headers now include session_mon information that must be properly initialized. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
Родитель
266673db42
Коммит
13e38c8ae7
|
@ -37,10 +37,10 @@
|
|||
*/
|
||||
#define CEPH_OSD_PROTOCOL 7 /* cluster internal */
|
||||
#define CEPH_MDS_PROTOCOL 9 /* cluster internal */
|
||||
#define CEPH_MON_PROTOCOL 4 /* cluster internal */
|
||||
#define CEPH_MON_PROTOCOL 5 /* cluster internal */
|
||||
#define CEPH_OSDC_PROTOCOL 20 /* server/client */
|
||||
#define CEPH_MDSC_PROTOCOL 29 /* server/client */
|
||||
#define CEPH_MONC_PROTOCOL 14 /* server/client */
|
||||
#define CEPH_MONC_PROTOCOL 15 /* server/client */
|
||||
|
||||
|
||||
#define CEPH_INO_ROOT 1
|
||||
|
@ -118,9 +118,14 @@ struct ceph_file_layout {
|
|||
#define CEPH_MSG_OSD_OP 42
|
||||
#define CEPH_MSG_OSD_OPREPLY 43
|
||||
|
||||
struct ceph_mon_request_header {
|
||||
__le64 have_version;
|
||||
__le16 session_mon;
|
||||
__le64 session_mon_tid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct ceph_mon_statfs {
|
||||
__le64 have_version;
|
||||
struct ceph_mon_request_header monhdr;
|
||||
struct ceph_fsid fsid;
|
||||
__le64 tid;
|
||||
} __attribute__ ((packed));
|
||||
|
@ -138,22 +143,22 @@ struct ceph_mon_statfs_reply {
|
|||
} __attribute__ ((packed));
|
||||
|
||||
struct ceph_osd_getmap {
|
||||
__le64 have_version;
|
||||
struct ceph_mon_request_header monhdr;
|
||||
struct ceph_fsid fsid;
|
||||
__le32 start;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct ceph_mds_getmap {
|
||||
__le64 have_version;
|
||||
struct ceph_mon_request_header monhdr;
|
||||
struct ceph_fsid fsid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct ceph_client_mount {
|
||||
__le64 have_version;
|
||||
struct ceph_mon_request_header monhdr;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct ceph_mon_subscribe_item {
|
||||
__le64 have;
|
||||
__le64 have_version; __le64 have;
|
||||
__u8 onetime;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
|
|
@ -857,7 +857,7 @@ out:
|
|||
static int verify_hello(struct ceph_connection *con)
|
||||
{
|
||||
if (memcmp(con->in_banner, CEPH_BANNER, strlen(CEPH_BANNER))) {
|
||||
pr_err("connect to/from %s has bad banner\n",
|
||||
pr_err("connect to %s got bad banner\n",
|
||||
pr_addr(&con->peer_addr.in_addr));
|
||||
con->error_msg = "protocol error, bad banner";
|
||||
return -1;
|
||||
|
|
|
@ -273,7 +273,9 @@ static void __request_mount(struct ceph_mon_client *monc)
|
|||
if (IS_ERR(msg))
|
||||
return;
|
||||
h = msg->front.iov_base;
|
||||
h->have_version = 0;
|
||||
h->monhdr.have_version = 0;
|
||||
h->monhdr.session_mon = cpu_to_le16(-1);
|
||||
h->monhdr.session_mon_tid = 0;
|
||||
ceph_con_send(monc->con, msg);
|
||||
}
|
||||
|
||||
|
@ -422,7 +424,9 @@ static int send_statfs(struct ceph_mon_client *monc,
|
|||
return PTR_ERR(msg);
|
||||
req->request = msg;
|
||||
h = msg->front.iov_base;
|
||||
h->have_version = 0;
|
||||
h->monhdr.have_version = 0;
|
||||
h->monhdr.session_mon = cpu_to_le16(-1);
|
||||
h->monhdr.session_mon_tid = 0;
|
||||
h->fsid = monc->monmap->fsid;
|
||||
h->tid = cpu_to_le64(req->tid);
|
||||
ceph_con_send(monc->con, msg);
|
||||
|
|
Загрузка…
Ссылка в новой задаче