From: Greg Farnum Date: Thu, 13 May 2010 21:20:17 +0000 (-0700) Subject: mds: Determine if there are file locks based on flockbl size, not dirty cap bit X-Git-Tag: v0.22~346^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5850363db0c20fbe009fb5bfdeb4a51f0d3e1aa6;p=ceph.git mds: Determine if there are file locks based on flockbl size, not dirty cap bit --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index b88c1c1e4c2a..9b26d665ea23 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -1985,7 +1985,7 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap, } } - if (dirty & CEPH_CAP_FLOCK_EXCL) { + if (m->flockbl.length()) { int32_t num_locks; bufferlist::iterator bli = m->flockbl.begin(); ::decode(num_locks, bli); @@ -2005,7 +2005,6 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap, ++in->flock_locks.client_held_lock_counts[decoded_lock.client]; } } - dirty &= ~(CEPH_CAP_FLOCK_SHARED|CEPH_CAP_FLOCK_EXCL); if (!dirty && !change_max) return false;