From: Yan, Zheng Date: Wed, 25 Jan 2017 03:03:45 +0000 (+0800) Subject: mds: skip fragment space check for replayed request X-Git-Tag: v11.2.1~139^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=224745491e5c9e495adce5abbf7731f7fae1ddc5;p=ceph.git 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) --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 4fa218980f2e5..007ee12802ee0 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2270,7 +2270,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);