X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmgs%2Fmgs_handler.c;h=26287c1fd5ee2f26ac7e51495e532fe3e8db73a6;hb=5eae8514f5f1730fe93d55d348400f5ecf681078;hp=0d8b4ec2cf48fa033c564426d00f7a2e44c4139e;hpb=0ab322a7f3a434997051912cec6c77253af5f351;p=fs%2Flustre-release.git diff --git a/lustre/mgs/mgs_handler.c b/lustre/mgs/mgs_handler.c index 0d8b4ec..26287c1 100644 --- a/lustre/mgs/mgs_handler.c +++ b/lustre/mgs/mgs_handler.c @@ -991,13 +991,16 @@ static int mgs_iocontrol(unsigned int cmd, struct obd_export *exp, int len, { struct obd_device *obd = exp->exp_obd; struct mgs_device *mgs = exp2mgs_dev(exp); - struct obd_ioctl_data *data = karg; + struct obd_ioctl_data *data; struct lu_env env; int rc = -EINVAL; ENTRY; CDEBUG(D_IOCTL, "%s: cmd=%x len=%u karg=%pK uarg=%pK\n", obd->obd_name, cmd, len, karg, uarg); + if (unlikely(karg == NULL)) + RETURN(OBD_IOC_ERROR(obd->obd_name, cmd, "karg=NULL", rc)); + data = karg; rc = lu_env_init(&env, LCT_MG_THREAD); if (rc) @@ -1067,8 +1070,8 @@ out_free: rc = mgs_replace_nids(&env, mgs, data->ioc_inlbuf1, data->ioc_inlbuf2); if (rc) - CERROR("%s: error replacing nids: rc = %d\n", - obd->obd_name, rc); + CERROR("%s: error replacing NIDs for '%s': rc = %d\n", + obd->obd_name, data->ioc_inlbuf1, rc); break; case OBD_IOC_CLEAR_CONFIGS: @@ -1119,20 +1122,20 @@ out_free: break; case OBD_IOC_LLOG_CANCEL: case OBD_IOC_LLOG_REMOVE: - case OBD_IOC_LLOG_CHECK: - case OBD_IOC_LLOG_INFO: - case OBD_IOC_LLOG_PRINT: { - struct llog_ctxt *ctxt; + case OBD_IOC_LLOG_CHECK: + case OBD_IOC_LLOG_INFO: + case OBD_IOC_LLOG_PRINT: { + struct llog_ctxt *ctxt; ctxt = llog_get_context(mgs->mgs_obd, LLOG_CONFIG_ORIG_CTXT); rc = llog_ioctl(&env, ctxt, cmd, data); llog_ctxt_put(ctxt); break; - } - default: + } + default: rc = OBD_IOC_ERROR(obd->obd_name, cmd, "unrecognized", -ENOTTY); break; - } + } out: lu_env_fini(&env); RETURN(rc);