Skip to content

Commit 265e678

Browse files
vshankarsalieri11
authored andcommitted
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 <[email protected]>
1 parent 3a35aeb commit 265e678

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/mds/CDir.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2494,6 +2494,10 @@ void CDir::_omap_commit_ops(int r, int op_prio, int64_t metapool, version_t vers
24942494
mdcache->mds->heartbeat_reset();
24952495
}
24962496

2497+
// the last omap commit includes the omap header, so account for
2498+
// that size early on so that when we reach `commit_one(true)`,
2499+
// there is enough space for the header.
2500+
write_size += sizeof(fnode_t);
24972501
using ceph::encode;
24982502
for (auto &item : to_set) {
24992503
bufferlist bl;

0 commit comments

Comments
 (0)