]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: do not mark per_pool_omap updated unless we fixed it
authorSage Weil <sage@redhat.com>
Fri, 25 Oct 2019 16:02:28 +0000 (11:02 -0500)
committerSage Weil <sage@redhat.com>
Fri, 25 Oct 2019 16:02:28 +0000 (11:02 -0500)
We only fix the per-pool-omap issues if we do a non-shallow fsck.

Fixes: https://tracker.ceph.com/issues/42490
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 460b2a3ccc5e720ec84201571e420acf9b40be11..89c41273016d8c3736fb5c81c3d601b93ab92c02 100644 (file)
@@ -8203,9 +8203,6 @@ int BlueStore::_fsck_on_open(BlueStore::FSCKDepth depth, bool repair)
     }
     derr << "fsck " << w << ": store not yet converted to per-pool omap"
         << dendl;
-    if (repair) {
-      repairer.fix_per_pool_omap(db);
-    }
   }
 
   // get expected statfs; reset unaffected fields to be able to compare
@@ -8737,6 +8734,12 @@ int BlueStore::_fsck_on_open(BlueStore::FSCKDepth depth, bool repair)
     }
   }
   if (repair) {
+    if (!per_pool_omap &&
+       depth != FSCK_SHALLOW) {
+      dout(5) << __func__ << " marking per_pool_omap=1" << dendl;
+      repairer.fix_per_pool_omap(db);
+    }
+
     dout(5) << __func__ << " applying repair results" << dendl;
     repaired = repairer.apply(db);
     dout(5) << __func__ << " repair applied" << dendl;