From 8b01cf33575783661a1e1151c8214d327a08b6f9 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 25 Jan 2017 11:03:45 +0800 Subject: [PATCH] mds: skip fragment space check for replayed request when handling replayed request, stray directory can be different from the stray directory used by the original request. The fragment space check for stray directory can fail. Fixes: http://tracker.ceph.com/issues/18660 Signed-off-by: "Yan, Zheng" (cherry picked from commit afe889cbc5baab196567c2aad01f49fe90901fda) --- src/mds/Server.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 56e93107214bb..a5c12386676c8 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2262,7 +2262,8 @@ CDentry* Server::prepare_stray_dentry(MDRequestRef& mdr, CInode *in) CDir *straydir = mdcache->get_stray_dir(in); - if (!check_fragment_space(mdr, straydir)) + if (!mdr->client_request->is_replay() && + !check_fragment_space(mdr, straydir)) return NULL; straydn = mdcache->get_or_create_stray_dentry(in); -- 2.39.5