Whamcloud - gitweb
LU-5512 lfsck: repair dangling name entry
[fs/lustre-release.git] / lustre / lfsck / lfsck_bookmark.c
index ffaa73d..e521c3a 100644 (file)
@@ -209,6 +209,11 @@ int lfsck_set_param(const struct lu_env *env, struct lfsck_instance *lfsck,
                        dirty = true;
                }
 
+               if (bk->lb_param & LPF_CREATE_MDTOBJ) {
+                       bk->lb_param &= ~LPF_CREATE_MDTOBJ;
+                       dirty = true;
+               }
+
                if (bk->lb_param & LPF_FAILOUT) {
                        bk->lb_param &= ~LPF_FAILOUT;
                        dirty = true;
@@ -254,6 +259,18 @@ int lfsck_set_param(const struct lu_env *env, struct lfsck_instance *lfsck,
                        }
                }
 
+               if ((start->ls_valid & LSV_CREATE_MDTOBJ) || reset) {
+                       if ((bk->lb_param & LPF_CREATE_MDTOBJ) &&
+                           !(start->ls_valid & LSV_CREATE_MDTOBJ)) {
+                               bk->lb_param &= ~LPF_CREATE_MDTOBJ;
+                               dirty = true;
+                       } else if (!(bk->lb_param & LPF_CREATE_MDTOBJ) &&
+                                  (start->ls_flags & LPF_CREATE_MDTOBJ)) {
+                               bk->lb_param |= LPF_CREATE_MDTOBJ;
+                               dirty = true;
+                       }
+               }
+
                if ((start->ls_valid & LSV_ERROR_HANDLE) || reset) {
                        if ((bk->lb_param & LPF_FAILOUT) &&
                            !(start->ls_valid & LSV_ERROR_HANDLE)) {