To propagate rstats to one level up, we need lock both parent
inode's nestlock and versionlock.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
// rstat
if (!primary_dn) {
// don't update parent this pass
- } else if (!linkunlink && !parent->inode->nestlock.can_wrlock(-1)) {
+ } else if (!linkunlink && !(parent->inode->nestlock.can_wrlock(-1) &&
+ parent->inode->versionlock.can_wrlock())) {
dout(20) << " unwritable parent nestlock " << parent->inode->nestlock
<< ", marking dirty rstat on " << *cur << dendl;
cur->mark_dirty_rstat();