]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: lock lock actions (no more LOCK_AC_SCATTER)
authorSage Weil <sage@newdream.net>
Thu, 12 Mar 2009 19:22:42 +0000 (12:22 -0700)
committerSage Weil <sage@newdream.net>
Thu, 12 Mar 2009 21:20:06 +0000 (14:20 -0700)
src/mds/Locker.cc
src/mds/locks.h
src/messages/MLock.h

index ceed764198c2dafb10926c7ce3646bae685f5639..6c6b0fa647b3f36de7ae2c76178bf86ccb724cae 100644 (file)
@@ -446,7 +446,7 @@ void Locker::eval_gather(SimpleLock *lock)
          
        case LOCK_SYNC_MIX:
          { 
-           MLock *reply = new MLock(lock, LOCK_AC_MIXEDACK, mds->get_nodeid());
+           MLock *reply = new MLock(lock, LOCK_AC_MIXACK, mds->get_nodeid());
            mds->send_message_mds(reply, auth);
          }
          break;
@@ -479,7 +479,7 @@ void Locker::eval_gather(SimpleLock *lock)
        if (in->is_replicated()) {
          bufferlist softdata;
          lock->encode_locked_state(softdata);
-         send_lock_message(lock, LOCK_AC_MIXED, softdata);
+         send_lock_message(lock, LOCK_AC_MIX, softdata);
        }
        break;
        
@@ -2621,7 +2621,7 @@ bool Locker::scatter_scatter_fastpath(ScatterLock *lock)
       // encode and bcast
       bufferlist data;
       lock->encode_locked_state(data);
-      send_lock_message(lock, LOCK_AC_SCATTER, data);
+      send_lock_message(lock, LOCK_AC_MIX, data);
     } 
     
     ((CInode *)lock->get_parent())->try_drop_loner();
@@ -2768,7 +2768,7 @@ void Locker::handle_scatter_lock(ScatterLock *lock, MLock *m)
     }
     break;
 
-  case LOCK_AC_SCATTER:
+  case LOCK_AC_MIX:
     assert(lock->get_state() == LOCK_LOCK);
     lock->decode_locked_state(m->get_data());
     lock->clear_updated();
@@ -3074,7 +3074,7 @@ void Locker::file_mixed(ScatterLock *lock)
       lock->encode_locked_state(softdata);
       
       // bcast to replicas
-      send_lock_message(lock, LOCK_AC_MIXED, softdata);
+      send_lock_message(lock, LOCK_AC_MIX, softdata);
     }
 
     // change lock
@@ -3090,7 +3090,7 @@ void Locker::file_mixed(ScatterLock *lock)
 
     int gather = 0;
     if (in->is_replicated()) {
-      send_lock_message(lock, LOCK_AC_MIXED);
+      send_lock_message(lock, LOCK_AC_MIX);
       if (lock->get_state() != LOCK_EXCL_MIX) {  // EXCL replica is LOCK
        lock->init_gather();
        gather++;
@@ -3261,7 +3261,7 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m)
     }
     break;
     
-  case LOCK_AC_MIXED:
+  case LOCK_AC_MIX:
     assert(lock->get_state() == LOCK_SYNC ||
            lock->get_state() == LOCK_LOCK ||
           lock->get_state() == LOCK_SYNC_MIX2);
@@ -3281,7 +3281,7 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m)
       lock->set_state(LOCK_SYNC_MIX2);
       
       // ack
-      MLock *reply = new MLock(lock, LOCK_AC_MIXEDACK, mds->get_nodeid());
+      MLock *reply = new MLock(lock, LOCK_AC_MIXACK, mds->get_nodeid());
       mds->send_message_mds(reply, from);
     } else {
       // LOCK
@@ -3340,7 +3340,7 @@ void Locker::handle_file_lock(ScatterLock *lock, MLock *m)
     }
     break;
 
-  case LOCK_AC_MIXEDACK:
+  case LOCK_AC_MIXACK:
     assert(lock->get_state() == LOCK_SYNC_MIX);
     assert(lock->is_gathering(from));
     lock->remove_gather(from);
index 0af00b9f2546bc8c844c7a7251a51b93386ad616..ba4380adee2546eb0d344aba3d7035ab1d6eebf0 100644 (file)
@@ -79,4 +79,44 @@ extern struct sm_t sm_scatterlock;
 #define LOCK_MIX_TSYN  27
 
 
+// -------------------------
+// lock actions
+
+// for replicas
+#define LOCK_AC_SYNC        -1
+#define LOCK_AC_MIX         -2
+#define LOCK_AC_LOCK        -3
+
+// for auth
+#define LOCK_AC_SYNCACK      1
+#define LOCK_AC_MIXACK     2
+#define LOCK_AC_LOCKACK      3
+
+#define LOCK_AC_REQSCATTER   7
+#define LOCK_AC_REQUNSCATTER 8
+#define LOCK_AC_NUDGE        9
+
+#define LOCK_AC_FOR_REPLICA(a)  ((a) < 0)
+#define LOCK_AC_FOR_AUTH(a)     ((a) > 0)
+
+
+static inline const char *get_lock_action_name(int a) {
+  switch (a) {
+  case LOCK_AC_SYNC: return "sync";
+  case LOCK_AC_MIX: return "mix";
+  case LOCK_AC_LOCK: return "lock";
+
+  case LOCK_AC_SYNCACK: return "syncack";
+  case LOCK_AC_MIXACK: return "mixack";
+  case LOCK_AC_LOCKACK: return "lockack";
+
+  case LOCK_AC_REQSCATTER: return "reqscatter";
+  case LOCK_AC_REQUNSCATTER: return "requnscatter";
+  case LOCK_AC_NUDGE: return "nudge";
+  default: return "???";
+  }
+}
+
+
+
 #endif
index da92e85e92136056d965dbf2069d89213f0708bb..aaa456f934be1ec3cba321d4f34cbb8c60c95e8e 100644 (file)
 #define __MLOCK_H
 
 #include "msg/Message.h"
-
-// for replicas
-#define LOCK_AC_SYNC        -1
-#define LOCK_AC_MIXED       -2
-#define LOCK_AC_LOCK        -3
-
-#define LOCK_AC_SCATTER     -6
-
-// for auth
-#define LOCK_AC_SYNCACK      1
-#define LOCK_AC_MIXEDACK     2
-#define LOCK_AC_LOCKACK      3
-
-#define LOCK_AC_REQSCATTER   7
-#define LOCK_AC_REQUNSCATTER 8
-#define LOCK_AC_NUDGE        9
-
-#define LOCK_AC_FOR_REPLICA(a)  ((a) < 0)
-#define LOCK_AC_FOR_AUTH(a)     ((a) > 0)
-
-
-static const char *get_lock_action_name(int a) {
-  switch (a) {
-  case LOCK_AC_SYNC: return "sync";
-  case LOCK_AC_MIXED: return "mixed";
-  case LOCK_AC_LOCK: return "lock";
-  case LOCK_AC_SCATTER: return "scatter";
-  case LOCK_AC_SYNCACK: return "syncack";
-  case LOCK_AC_MIXEDACK: return "mixedack";
-  case LOCK_AC_LOCKACK: return "lockack";
-  case LOCK_AC_REQSCATTER: return "reqscatter";
-  case LOCK_AC_REQUNSCATTER: return "requnscatter";
-  case LOCK_AC_NUDGE: return "nudge";
-  default: assert(0); return 0;
-  }
-}
-
+#include "mds/locks.h"
 
 class MLock : public Message {
   int32_t     action;  // action type