]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: ignore 0x2000~2000 extent oddity from luminous upgrade 18050/head
authorSage Weil <sage@redhat.com>
Wed, 20 Sep 2017 16:38:46 +0000 (12:38 -0400)
committerxie xingguo <xie.xingguo@zte.com.cn>
Mon, 2 Oct 2017 02:54:11 +0000 (10:54 +0800)
commit28e7d5645e5fdf5471a2a809bd232521f2d33814
tree8ced23c582b6be187d0e2070789b71a0d4ed7d01
parent633b114aca65548b91a898db7bbbef784b76180b
os/bluestore: ignore 0x2000~2000 extent oddity from luminous upgrade

Luminous does a block_size granularity freelist, and assumes that
0~ROUND_UP_TO(SUPER_RESERVED,block_size) is used.  Current master uses
min_alloc_size granularity and changes that assumption to
0~ROUND_UP_TO(SUPER_RESERVED,min_alloc_size).  That means if master
fsck's a luminous-created bluestore, it will think 0x2000~2000 is used
(current baked-in min_alloc_size-based assumption) but the old freelist
says it is free (old mkfs assumption).  The disparity is harmless since
the extent is below min_alloc_size, so ignore it.

Fixes: http://tracker.ceph.com/issues/21408
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 4959ad310a96208565b47c035ab5d5dded1b8ff5)
src/os/bluestore/BlueStore.cc