From: Chunmei Liu Date: Tue, 18 Feb 2025 21:01:36 +0000 (+0000) Subject: os/bluestore: fix fault_range for _do_write_v2 X-Git-Tag: v20.3.0~457^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=acc80adde99fed5ceb85108e8a2f122e40f18404;p=ceph.git os/bluestore: fix fault_range for _do_write_v2 do_write_v2 insert extentmap by aligned offset, if fault_range use original offet~length, may not cover the proper extentmap range. Signed-off-by: Chunmei Liu --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index ba1e0aa4c25d7..400bc1b7f4c78 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -17532,7 +17532,9 @@ int BlueStore::_do_write_v2( if (bl.length() != length) { bl.splice(length, bl.length() - length); } - o->extent_map.fault_range(db, offset, length); + uint64_t start = p2align(offset, min_alloc_size); + uint64_t end = p2roundup(offset + length, min_alloc_size); + o->extent_map.fault_range(db, start, end - start); BlueStore::Writer wr(this, txc, &wctx, o); wr.do_write(offset, bl); return r;