X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmgmt%2Fmgmt_svc.c;h=9debe475fd39c394f4b0f56f1e967b97ef1173f3;hb=e6e9b8baa8c2db4385bf2e2a692463ae41eb43ac;hp=0dff68971195c80fdd7331649dedf8cd11ee46bc;hpb=48e080ea156e4a6ad38ef6b14215787c52761f40;p=fs%2Flustre-release.git diff --git a/lustre/mgmt/mgmt_svc.c b/lustre/mgmt/mgmt_svc.c index 0dff689..9debe47 100644 --- a/lustre/mgmt/mgmt_svc.c +++ b/lustre/mgmt/mgmt_svc.c @@ -49,11 +49,28 @@ static int mgmt_ping(struct ptlrpc_request *req) return lustre_pack_msg(0, NULL, NULL, &req->rq_replen, &req->rq_repmsg); } +static int mgmt_msg_check_version(struct lustre_msg *msg) +{ + if (lustre_msg_check_version(msg, LUSTRE_OBD_VERSION)) { + CERROR("bad opc %u version %08x, expecting %08x\n", + msg->opc, msg->version, LUSTRE_OBD_VERSION); + return -EINVAL; + } + + return 0; +} + static int mgmt_handler(struct ptlrpc_request *req) { int rc; ENTRY; + rc = mgmt_msg_check_version(req->rq_reqmsg); + if (rc) { + CERROR("MGMT drop mal-formed request\n"); + RETURN(rc); + } + switch (req->rq_reqmsg->opc) { case OBD_PING: DEBUG_REQ(D_RPCTRACE, req, "ping"); @@ -89,10 +106,9 @@ static int mgmt_setup(struct obd_device *obd, obd_count len, void *buf) RETURN(-EALREADY); mgmt_service = - ptlrpc_init_svc(MGMT_NBUFS, MGMT_BUFSIZE, MGMT_MAXREQSIZE, - MGMT_REQUEST_PORTAL, MGMT_REPLY_PORTAL, - mgmt_handler, "mgmt", - obd->obd_proc_entry); + ptlrpc_init_svc(MGMT_NBUFS, MGMT_BUFSIZE, MGMT_MAXREQSIZE, + MGMT_REQUEST_PORTAL, MGMT_REPLY_PORTAL, 30000, + mgmt_handler, "mgmt", obd->obd_proc_entry); if (!mgmt_service) { CERROR("Failed to start mgmt service\n"); RETURN(-ENOMEM); @@ -134,7 +150,8 @@ static struct obd_ops mgmt_obd_ops = { static int __init mgmt_init(void) { - int rc = class_register_type(&mgmt_obd_ops, 0, MGMT_DEVICE_NAME); + int rc = class_register_type(&mgmt_obd_ops, NULL, + 0, MGMT_DEVICE_NAME); return rc; }