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>
(cherry picked from commit
afe889cbc5baab196567c2aad01f49fe90901fda)
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);