From e58e2f553d298b050ff41979b804d59458eebc04 Mon Sep 17 00:00:00 2001 From: chunmei liu Date: Tue, 11 Feb 2025 14:26:34 -0800 Subject: [PATCH] os/bluestore: fix do_write_v2 extentmap compress issue do_write_v2 insert extentmap by aligned offset which is adjusted in writer.do_write, if use original offset will cause extentmap can't do compress. Signed-off-by: chunmei liu --- src/os/bluestore/BlueStore.cc | 3 --- src/os/bluestore/Writer.cc | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 8f1d995fa8db..25a9e8d5ac63 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -17521,9 +17521,6 @@ int BlueStore::_do_write_v2( o->extent_map.fault_range(db, offset, length); BlueStore::Writer wr(this, txc, &wctx, o); wr.do_write(offset, bl); - o->extent_map.compress_extent_map(offset, length); - o->extent_map.dirty_range(offset, length); - o->extent_map.maybe_reshard(offset, offset + length); return r; } diff --git a/src/os/bluestore/Writer.cc b/src/os/bluestore/Writer.cc index 41bae8d9cef8..78f3c9b7d84b 100644 --- a/src/os/bluestore/Writer.cc +++ b/src/os/bluestore/Writer.cc @@ -1376,6 +1376,9 @@ void BlueStore::Writer::do_write( _collect_released_allocated(); // update statfs txc->statfs_delta += statfs_delta; + onode->extent_map.compress_extent_map(location, data_end - location); + onode->extent_map.dirty_range(location, data_end-location); + onode->extent_map.maybe_reshard(location, data_end); dout(25) << "result: " << std::endl << onode->print(pp_mode) << dendl; } -- 2.47.3