Whamcloud - gitweb
LU-7349 lfsck: skip auto resume lfsck when mount
[fs/lustre-release.git] / lustre / mdt / mdt_handler.c
index 216cb4d..d462496 100644 (file)
@@ -4358,6 +4358,9 @@ static int mdt_init0(const struct lu_env *env, struct mdt_device *m,
                 LASSERT(num);
                 node_id = simple_strtol(num, NULL, 10);
                obd->u.obt.obt_magic = OBT_MAGIC;
+               if (lsi->lsi_lmd != NULL &&
+                   lsi->lsi_lmd->lmd_flags & LMD_FLG_SKIP_LFSCK)
+                       m->mdt_skip_lfsck = 1;
        }
 
        m->mdt_squash.rsi_uid = 0;
@@ -5676,18 +5679,21 @@ static int mdt_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
 static int mdt_postrecov(const struct lu_env *env, struct mdt_device *mdt)
 {
        struct lu_device *ld = md2lu_dev(mdt->mdt_child);
-       struct lfsck_start_param lsp;
        int rc;
        ENTRY;
 
-       lsp.lsp_start = NULL;
-       lsp.lsp_index_valid = 0;
-       rc = mdt->mdt_child->md_ops->mdo_iocontrol(env, mdt->mdt_child,
-                                                  OBD_IOC_START_LFSCK,
-                                                  0, &lsp);
-       if (rc != 0 && rc != -EALREADY)
-               CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n",
-                     mdt_obd_name(mdt), rc);
+       if (!mdt->mdt_skip_lfsck) {
+               struct lfsck_start_param lsp;
+
+               lsp.lsp_start = NULL;
+               lsp.lsp_index_valid = 0;
+               rc = mdt->mdt_child->md_ops->mdo_iocontrol(env, mdt->mdt_child,
+                                                          OBD_IOC_START_LFSCK,
+                                                          0, &lsp);
+               if (rc != 0 && rc != -EALREADY)
+                       CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n",
+                             mdt_obd_name(mdt), rc);
+       }
 
        rc = ld->ld_ops->ldo_recovery_complete(env, ld);
        RETURN(rc);