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;