From: Kotresh HR Date: Tue, 25 Feb 2025 12:31:34 +0000 (+0530) Subject: multi-mds/unlink: Handle rollback of referent_inodes list X-Git-Tag: v20.3.0~377^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e6c6f52e548f50a497f5177ea8af14f528c796f3;p=ceph.git 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 --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 5307cbfef390..0901f7cff2d6 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;