]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: compensate for bad freelistmanager size/blocks metadata 17273/head
authorSage Weil <sage@redhat.com>
Fri, 25 Aug 2017 22:08:25 +0000 (18:08 -0400)
committerxie xingguo <xie.xingguo@zte.com.cn>
Sun, 27 Aug 2017 01:47:42 +0000 (09:47 +0800)
commit21f55154b3129b0208ee8963466101b54f408c81
treed23484bb141eb921c145862beb7dee1ed6815443
parentc2ff9fb2608e058108094ac5455c305c0c7b3923
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>
(cherry picked from commit c029a9645b13d0c0cf412940010b90ac10638ec3)
src/os/bluestore/BlueStore.cc