@@ -477,6 +477,7 @@ void Locker::set_xlocks_done(Mutation *mut, bool skip_dentry)
continue;
dout(10) << "set_xlocks_done on " << **p << " " << *(*p)->get_parent() << dendl;
(*p)->set_xlock_done();
+ (*p)->finish_waiters(ScatterLock::WAIT_XLOCK);
}
}
@@ -1419,7 +1420,7 @@ bool Locker::xlock_start(SimpleLock *lock, MDRequest *mut)
}
}
- lock->add_waiter(SimpleLock::WAIT_WR|SimpleLock::WAIT_STABLE, new C_MDS_RetryRequest(mdcache, mut));
+ lock->add_waiter(SimpleLock::WAIT_XLOCK|SimpleLock::WAIT_STABLE, new C_MDS_RetryRequest(mdcache, mut));
nudge_log(lock);
return false;
} else {