]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: simplify loner_cap update
authorSage Weil <sage@newdream.net>
Fri, 16 Jan 2009 00:33:48 +0000 (16:33 -0800)
committerSage Weil <sage@newdream.net>
Fri, 16 Jan 2009 00:33:48 +0000 (16:33 -0800)
This may still not be right...

src/mds/Locker.cc

index b64f82b63b0992ec7758e455b7eb4e9c175de23a..98174d44b2cede1fa94ed98ae298994e80b79e66 100644 (file)
@@ -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);