From: chunmei liu Date: Tue, 11 Feb 2025 22:26:34 +0000 (-0800) Subject: os/bluestore: fix do_write_v2 extentmap compress issue X-Git-Tag: v20.0.0~127^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e58e2f553d298b050ff41979b804d59458eebc04;p=ceph.git 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 --- 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; }