From 3243af47d60558227263203cdc4f9b9f0ebb3f5e Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 28 Jan 2025 13:06:36 -0500 Subject: [PATCH] mds: do not path traverse a damaged dirfrag Fixes: https://tracker.ceph.com/issues/69695 Signed-off-by: Patrick Donnelly --- src/mds/MDCache.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 04e1fd7111952..e23412734173e 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -8452,6 +8452,13 @@ int MDCache::path_traverse(const MDRequestRef& mdr, MDSContextFactory& cf, } } ceph_assert(curdir); + + if (mds->damage_table.is_dirfrag_damaged(curdir)) { + dout(4) << "traverse: stopped lookup at dirfrag " + << *curdir << "/" << path[depth] << " snap=" << snapid << dendl; + return -CEPHFS_EIO; + } + if (pdir) { *pdir = curdir; } -- 2.39.5