From: Venky Shankar Date: Wed, 17 Jul 2024 10:05:45 +0000 (+0000) Subject: mds: account for header size during omap commit X-Git-Tag: v20.0.0~637^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=265e6785be0071942420acf2bdf067d6c0340eaa;p=ceph.git mds: account for header size during omap commit fnode_t is set in the omap header during directory commit operation which isn't accounted when tracking operation size. Fixes: http://tracker.ceph.com/issues/67597 Signed-off-by: Venky Shankar --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index af9f8edfffa5b..7d28e039d9c01 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -2494,6 +2494,10 @@ void CDir::_omap_commit_ops(int r, int op_prio, int64_t metapool, version_t vers mdcache->mds->heartbeat_reset(); } + // the last omap commit includes the omap header, so account for + // that size early on so that when we reach `commit_one(true)`, + // there is enough space for the header. + write_size += sizeof(fnode_t); using ceph::encode; for (auto &item : to_set) { bufferlist bl;