From e6c6f52e548f50a497f5177ea8af14f528c796f3 Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Tue, 25 Feb 2025 18:01:34 +0530 Subject: [PATCH] multi-mds/unlink: Handle rollback of referent_inodes list The referent_inodes list needs to be rolled back if the unlink operation involving multi-mds fails due to mds going down. This patch takes care of the same. Fixes: https://tracker.ceph.com/issues/54205 Signed-off-by: Kotresh HR --- src/mds/Server.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 5307cbfef3900..0901f7cff2d65 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -8355,6 +8355,11 @@ void Server::do_link_rollback(bufferlist &rbl, mds_rank_t leader, const MDReques } } else { pi.inode->nlink++; + if (rollback.referent_ino) { + pi.inode->add_referent_ino(rollback.referent_ino); + dout(10) << __func__ << " referent_inodes " << std::hex << pi.inode->get_referent_inodes() + << " referent ino added " << rollback.referent_ino << dendl; + } } map> splits; -- 2.39.5