From: Sage Weil Date: Fri, 19 Dec 2008 21:54:42 +0000 (-0800) Subject: mds: don't bump to sync if dir and subtree root X-Git-Tag: v0.6~1^2~219 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=55e6b073f89db4bb6c113d85adcee219c8d853e9;p=ceph.git mds: don't bump to sync if dir and subtree root --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 92feef0d3b94..aabf0d8eca84 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -3479,7 +3479,9 @@ void Locker::file_eval(FileLock *lock) // * -> sync? else if (lock->get_state() != LOCK_SYNC && !in->filelock.is_waiter_for(SimpleLock::WAIT_WR) && - !(wanted & (CEPH_CAP_WR|CEPH_CAP_WRBUFFER)) + !(wanted & (CEPH_CAP_WR|CEPH_CAP_WRBUFFER)) && + !(in->get_state() == LOCK_MIXED && + in->is_dir() && in->has_subtree_root_dirfrag()) // if we are a delegation point, stay where we are //((wanted & CEPH_CAP_RD) || //in->is_replicated() || //lock->get_num_client_lease() ||