diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 451ea3efcfed6ad22b861bed5e7fddfcbad0b202..4d2eb414eae514208651733af75a5b678da479bf 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -4276,14 +4276,13 @@ static int mdt_init0(const struct lu_env *env, struct mdt_device *m, } else { lsi = s2lsi(lmi->lmi_sb); fsoptions_to_mdt_flags(m, lsi->lsi_lmd->lmd_opts); - server_put_mount_2(dev, lmi->lmi_mnt); /* CMD is supported only in IAM mode */ ldd = lsi->lsi_ldd; LASSERT(num); node_id = simple_strtol(num, NULL, 10); if (!(ldd->ldd_flags & LDD_F_IAM_DIR) && node_id) { CERROR("CMD Operation not allowed in IOP mode\n"); - RETURN(-EINVAL); + GOTO(err_lmi, rc = -EINVAL); } } diff --git a/lustre/obdclass/obd_mount.c b/lustre/obdclass/obd_mount.c index fcac24ca58df172d5383a569a5af4e5aa99abc63..979aaa5341aa74a805a57e13068fe3ce2ce34ada 100644 --- a/lustre/obdclass/obd_mount.c +++ b/lustre/obdclass/obd_mount.c @@ -1135,6 +1135,7 @@ static int server_start_targets(struct super_block *sb, struct vfsmount *mnt) if (rc) { CERROR("failed to start server %s: %d\n", lsi->lsi_ldd->ldd_svname, rc); + server_deregister_mount(lsi->lsi_ldd->ldd_svname); GOTO(out_mgc, rc); }