]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: skip fragment space check for replayed request
authorYan, Zheng <zyan@redhat.com>
Wed, 25 Jan 2017 03:03:45 +0000 (11:03 +0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 25 Jan 2017 06:59:28 +0000 (14:59 +0800)
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" <zyan@redhat.com>
src/mds/Server.cc

index 5bdf3a41b085dcbf6cd5c8e3893289419a5fbac9..20c6be63a5493503bf64c2bcc1d5b8da648c021a 100644 (file)
@@ -2289,7 +2289,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);