From 2cd07acd52ccb14ec024df83ba95ddfe1b2ac04d Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Thu, 29 Jan 2026 10:44:53 -0500 Subject: [PATCH] mds: dump SnapRealm for src/dest in link operations So we can verify the state of the SnapRealm if we hit EXDEV. Now looks like: 2026-01-29T12:05:52.603-0500 7defd1a64640 20 mds.0.server src_realm snaprealm(0x10000000002 seq 1 lc 0 cr 1 cps 2 snaps={} subvol last_modified 0.000000 change_attr 0 is_snapdir_visible 1 0x5c1a558a66c0) 2026-01-29T12:05:52.603-0500 7defd1a64640 20 mds.0.server dest_realm snaprealm(0x10000000002 seq 1 lc 0 cr 1 cps 2 snaps={} subvol last_modified 0.000000 change_attr 0 is_snapdir_visible 1 0x5c1a558a66c0) Signed-off-by: Patrick Donnelly Fixes: https://tracker.ceph.com/issues/74652 --- src/mds/Server.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index ea60c5030df..82b6db406f5 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -7871,6 +7871,8 @@ void Server::handle_client_link(const MDRequestRef& mdr) CInode* target_pin = targeti->get_projected_parent_dir()->inode; SnapRealm *target_realm = target_pin->find_snaprealm(); + ceph_assert(target_realm); + dout(20) << "target_realm " << *target_realm << dendl; if (target_pin != dir->inode && target_realm->get_subvolume_ino() != dir->inode->find_snaprealm()->get_subvolume_ino() && @@ -9692,6 +9694,10 @@ void Server::handle_client_rename(const MDRequestRef& mdr) src_realm = dest_realm; else src_realm = srcdir->inode->find_snaprealm(); + ceph_assert(dest_realm); + ceph_assert(src_realm); + dout(20) << "src_realm " << *src_realm << dendl; + dout(20) << "dest_realm " << *dest_realm << dendl; if (src_realm != dest_realm && src_realm->get_subvolume_ino() != dest_realm->get_subvolume_ino()) { respond_to_request(mdr, -EXDEV); -- 2.47.3