From: Gregory Farnum Date: Thu, 16 Oct 2014 13:57:34 +0000 (-0700) Subject: Merge pull request #2628 from ceph/wip-client-flock X-Git-Tag: v0.88~63 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ca44f503cc269b97b65f85c8d114a4221b2f80bd;p=ceph.git Merge pull request #2628 from ceph/wip-client-flock Wip client flock Add support for file locking to the userspace client, and improve blocked-lock cancellation so that it doesn't remove locks that succeeded when racing. Reviewed-by: Greg Farnum --- ca44f503cc269b97b65f85c8d114a4221b2f80bd diff --cc src/mds/flock.cc index f327a5813e5e,9455a8940401..e99435e5d19d --- a/src/mds/flock.cc +++ b/src/mds/flock.cc @@@ -139,10 -140,10 +139,10 @@@ void ceph_lock_state_t::remove_lock(cep iter = self_overlapping_locks.begin(); iter != self_overlapping_locks.end(); ++iter) { - dout(15) << "self overlapping lock " << (*iter)->second << dendl; + ldout(cct,15) << "self overlapping lock " << (*iter)->second << dendl; old_lock = &(*iter)->second; bool old_lock_to_end = (0 == old_lock->length); - old_lock_end = old_lock->start + old_lock->length - 1; + uint64_t old_lock_end = old_lock->start + old_lock->length - 1; old_lock_client = old_lock->client; if (remove_to_end) { if (old_lock->start < removal_start) { @@@ -206,8 -207,10 +206,8 @@@ void ceph_lock_state_t::adjust_locks(li list::iterator> neighbor_locks) { - dout(15) << "adjust_locks" << dendl; + ldout(cct,15) << "adjust_locks" << dendl; bool new_lock_to_end = (0 == new_lock.length); - uint64_t new_lock_start, new_lock_end; - uint64_t old_lock_start, old_lock_end; __s64 old_lock_client = 0; ceph_filelock *old_lock; for (list::iterator>::iterator @@@ -215,12 -218,12 +215,12 @@@ iter != old_locks.end(); ++iter) { old_lock = &(*iter)->second; - dout(15) << "adjusting lock: " << *old_lock << dendl; + ldout(cct,15) << "adjusting lock: " << *old_lock << dendl; bool old_lock_to_end = (0 == old_lock->length); - old_lock_start = old_lock->start; - old_lock_end = old_lock->start + old_lock->length - 1; - new_lock_start = new_lock.start; - new_lock_end = new_lock.start + new_lock.length - 1; + uint64_t old_lock_start = old_lock->start; + uint64_t old_lock_end = old_lock->start + old_lock->length - 1; + uint64_t new_lock_start = new_lock.start; + uint64_t new_lock_end = new_lock.start + new_lock.length - 1; old_lock_client = old_lock->client; if (new_lock_to_end || old_lock_to_end) { //special code path to deal with a length set at 0