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>