]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: use direct write in BlueStore::_write_bdev_label 48279/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:16:51 +0000 (12:16 +0300)
commit4b6c0346ee968abbc88ff4a8c5541a5d354f864d
treebbb154dfb336c29ef7c3c85685a9ec39571aa67e
parentd007c663d49bb5bc76f0589f3c244392cda85189
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