From: Xuehan Xu Date: Thu, 25 Apr 2024 06:24:47 +0000 (+0800) Subject: crimson/os/seastore: only update onode sizes when necessary X-Git-Tag: v20.0.0~2070^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F57088%2Fhead;p=ceph.git crimson/os/seastore: only update onode sizes when necessary Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index 4a191e25bc5..39d7e7ec231 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -1653,8 +1653,8 @@ SeaStore::Shard::_write( { LOG_PREFIX(SeaStore::_write); DEBUGT("onode={} {}~{}", *ctx.transaction, *onode, offset, len); - { - const auto &object_size = onode->get_layout().size; + const auto &object_size = onode->get_layout().size; + if (offset + len > object_size) { onode->update_onode_size( *ctx.transaction, std::max(offset + len, object_size));