Skip to content

Commit acc80ad

Browse files
committed
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 <[email protected]>
1 parent e52e550 commit acc80ad

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/os/bluestore/BlueStore.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17532,7 +17532,9 @@ int BlueStore::_do_write_v2(
1753217532
if (bl.length() != length) {
1753317533
bl.splice(length, bl.length() - length);
1753417534
}
17535-
o->extent_map.fault_range(db, offset, length);
17535+
uint64_t start = p2align(offset, min_alloc_size);
17536+
uint64_t end = p2roundup(offset + length, min_alloc_size);
17537+
o->extent_map.fault_range(db, start, end - start);
1753617538
BlueStore::Writer wr(this, txc, &wctx, o);
1753717539
wr.do_write(offset, bl);
1753817540
return r;

0 commit comments

Comments
 (0)