]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: use direct write in BlueStore::_write_bdev_label 48278/head
authorluo rixin <luorixin@huawei.com>
Wed, 14 Sep 2022 11:50:01 +0000 (19:50 +0800)
committerIgor Fedotov <igor.fedotov@croit.io>
Wed, 28 Sep 2022 09:14:35 +0000 (12:14 +0300)
commit23ea3f0cb393aa3e142a52e65f8faf389a849639
tree156a056c0b825a93aaf99af8f47afbc52ff982bd
parent966bd07c7933dde97fbebe5b6735924d693c5fe3
os/bluestore: use direct write in BlueStore::_write_bdev_label

On AArch64 with kernel page size 64K, it occurs occasionally
"OSD::init(): unable to read osd superblock" when deploying osd.
As bluestore use direct write to write the superblock at 0x2000~1000
and BlueStore::_write_bdev_label use buffer write to write label at
0x0~1000, The OS flush the buffer write algined to page size, it will
overwrite the superblock(0x2000~1000). Use driect write to avoid
overwriting the superblock.

Fixes: https://tracker.ceph.com/issues/57537
Signed-off-by: luo rixin <luorixin@huawei.com>
(cherry picked from commit afdb5e4271dcabb8aaa7f5c797c31dcbb2e387f6)
src/os/bluestore/BlueStore.cc