From: Yan, Zheng Date: Wed, 5 Aug 2020 08:04:30 +0000 (+0800) Subject: mds: disallow hardlink across subvolume X-Git-Tag: wip-pdonnell-testing-20200918.022351~305^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=55cc3f7d7d27837bfe64ee46444358c0e45d16f6;p=ceph-ci.git mds: disallow hardlink across subvolume Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 0655da9d1b3..cd2319e3eb8 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -6336,6 +6336,16 @@ void Server::handle_client_link(MDRequestRef& mdr) return; } + CInode* target_pin = targeti->get_projected_parent_dir()->inode; + SnapRealm *target_realm = target_pin->find_snaprealm(); + if (target_pin != dir->inode && + target_realm->get_subvolume_ino() != + dir->inode->find_snaprealm()->get_subvolume_ino()) { + dout(7) << "target is in different subvolume, failing..." << dendl; + respond_to_request(mdr, -EXDEV); + return; + } + // go! ceph_assert(g_conf()->mds_kill_link_at != 1);