]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
os/bluestore: compensate for bad freelistmanager size/blocks metadata
authorSage Weil <sage@redhat.com>
Fri, 25 Aug 2017 22:08:25 +0000 (18:08 -0400)
committerSage Weil <sage@redhat.com>
Fri, 25 Aug 2017 22:08:49 +0000 (18:08 -0400)
commitc029a9645b13d0c0cf412940010b90ac10638ec3
treedfed5a52768efe4ce372cf2ee634abf80a538e6a
parent3dfc8659c51ee31064e897c006de02706a4b01c5
os/bluestore: compensate for bad freelistmanager size/blocks metadata

This repairs bluestores created before http://tracker.ceph.com/issues/21089
was fixed in f6f1ae3724d593d3709d982c973ec18a25a47b6e.

In both cases, the freelistmanager's size is off by one block (4k).  In
one case, it is just a matter of fixing the size and twiddling the trailing
bit.  In the second case, the size delta causes freelistmanager to need
a new row, which means the blocks count also changes, and we have lots
of bits to zero (all but one in the new row).

Both are silently corrected by fsck in this patch.

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