summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-01-15 16:33:48 -0800
committerSage Weil <sage@newdream.net>2009-01-15 16:33:48 -0800
commit49fea8a37f20091e96694c29267a3b2e8458ba70 (patch)
tree6655480e8f83b085196c7ad1a761801fc323bc79 /src
parentd467cbf901d4c7fac0b69845ee19950356ad29b5 (diff)
downloadceph-49fea8a37f20091e96694c29267a3b2e8458ba70.tar.gz
mds: simplify loner_cap update
This may still not be right...
Diffstat (limited to 'src')
-rw-r--r--src/mds/Locker.cc14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc
index b64f82b63b0..98174d44b2c 100644
--- a/src/mds/Locker.cc
+++ b/src/mds/Locker.cc
@@ -463,21 +463,15 @@ void Locker::eval_gather(SimpleLock *lock)
scatter_writebehind((ScatterLock*)lock);
return;
}
-
- switch (lock->get_state()) {
- // to lock
- case LOCK_MIX_LOCK:
- case LOCK_SYNC_LOCK:
- case LOCK_EXCL_LOCK:
+
+ if (in && lock->get_state() != LOCK_EXCL)
in->loner_cap = -1;
- break;
+ switch (lock->get_state()) {
// to mixed
case LOCK_TSYN_MIX:
case LOCK_SYNC_MIX:
case LOCK_EXCL_MIX:
- in->loner_cap = -1;
-
if (in->is_replicated()) {
bufferlist softdata;
lock->encode_locked_state(softdata);
@@ -487,8 +481,6 @@ void Locker::eval_gather(SimpleLock *lock)
case LOCK_EXCL_SYNC:
case LOCK_LOCK_SYNC:
- in->loner_cap = -1;
-
{ // bcast data to replicas
bufferlist softdata;
lock->encode_locked_state(softdata);