From acc80adde99fed5ceb85108e8a2f122e40f18404 Mon Sep 17 00:00:00 2001 From: Chunmei Liu Date: Tue, 18 Feb 2025 21:01:36 +0000 Subject: [PATCH] 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 --- src/os/bluestore/BlueStore.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; -- 2.39.5