From 7ad7e044ef981ff945a77cdb503e85e3e10145f0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 1 Jan 2009 11:06:13 -0800 Subject: [PATCH] mds: clean up lock print methods --- src/mds/FileLock.h | 60 +++++++++++++++++-------------------------- src/mds/LocalLock.h | 12 --------- src/mds/ScatterLock.h | 55 +++++++++++++++++---------------------- src/mds/SimpleLock.h | 40 +++++++++++++++++------------ 4 files changed, 70 insertions(+), 97 deletions(-) diff --git a/src/mds/FileLock.h b/src/mds/FileLock.h index 2891746c7c90b..876d108fe9fe5 100644 --- a/src/mds/FileLock.h +++ b/src/mds/FileLock.h @@ -56,27 +56,6 @@ using namespace std; // * <- varies if client is loner vs non-loner. -inline const char *get_filelock_state_name(int n) { - switch (n) { - case LOCK_SYNC: return "sync"; - case LOCK_LONER_SYNC: return "loner->sync"; - case LOCK_MIXED_SYNC: return "mixed->sync"; - case LOCK_MIXED_SYNC2: return "mixed->sync2"; - case LOCK_LOCK_SYNC: return "lock->sync"; - case LOCK_LOCK: return "lock"; - case LOCK_SYNC_LOCK: return "sync->lock"; - case LOCK_LONER_LOCK: return "loner->lock"; - case LOCK_MIXED_LOCK: return "mixed->lock"; - case LOCK_MIXED: return "mixed"; - case LOCK_SYNC_MIXED: return "sync->mixed"; - case LOCK_LONER_MIXED: return "loner->mixed"; - case LOCK_LONER: return "loner"; - case LOCK_SYNC_LONER: return "sync->loner"; - case LOCK_MIXED_LONER: return "mixed->loner"; - case LOCK_LOCK_LONER: return "lock->loner"; - default: assert(0); return 0; - } -} /* no append scenarios: @@ -106,6 +85,29 @@ class FileLock : public ScatterLock { FileLock(MDSCacheObject *o, int t, int wo) : ScatterLock(o, t, wo) {} + const char *get_state_name(int n) { + switch (n) { + case LOCK_SYNC: return "sync"; + case LOCK_LONER_SYNC: return "loner->sync"; + case LOCK_MIXED_SYNC: return "mixed->sync"; + case LOCK_MIXED_SYNC2: return "mixed->sync2"; + case LOCK_LOCK_SYNC: return "lock->sync"; + case LOCK_LOCK: return "lock"; + case LOCK_SYNC_LOCK: return "sync->lock"; + case LOCK_LONER_LOCK: return "loner->lock"; + case LOCK_MIXED_LOCK: return "mixed->lock"; + case LOCK_MIXED: return "mixed"; + case LOCK_SYNC_MIXED: return "sync->mixed"; + case LOCK_LONER_MIXED: return "loner->mixed"; + case LOCK_LONER: return "loner"; + case LOCK_SYNC_LONER: return "sync->loner"; + case LOCK_MIXED_LONER: return "mixed->loner"; + case LOCK_LOCK_LONER: return "lock->loner"; + default: assert(0); return 0; + } + } + + int get_replica_state() const { switch (state) { case LOCK_LOCK: @@ -257,22 +259,6 @@ class FileLock : public ScatterLock { state == LOCK_LOCK_LONER); } - - void print(ostream& out) { - out << "("; - out << get_lock_type_name(get_type()) << " "; - out << get_filelock_state_name(get_state()); - if (!get_gather_set().empty()) out << " g=" << get_gather_set(); - if (get_num_client_lease()) - out << " c=" << get_num_client_lease(); - if (is_wrlocked()) - out << " w=" << get_num_wrlocks(); - if (is_rdlocked()) - out << " r=" << get_num_rdlocks(); - if (is_xlocked()) - out << " x=" << get_xlocked_by(); - out << ")"; - } }; diff --git a/src/mds/LocalLock.h b/src/mds/LocalLock.h index 752fdcb4d3fd1..dfbaf2e8a53a8 100644 --- a/src/mds/LocalLock.h +++ b/src/mds/LocalLock.h @@ -43,18 +43,6 @@ public: } bool is_wrlocked() { return num_wrlock > 0; } int get_num_wrlocks() { return num_wrlock; } - - - void print(ostream& out) { - out << "("; - out << get_lock_type_name(get_type()); - if (is_xlocked()) - out << " x=" << get_xlocked_by(); - if (is_wrlocked()) - out << " wr=" << get_num_wrlocks(); - out << ")"; - } - }; diff --git a/src/mds/ScatterLock.h b/src/mds/ScatterLock.h index a864ab318686c..2490c3be20af8 100644 --- a/src/mds/ScatterLock.h +++ b/src/mds/ScatterLock.h @@ -40,27 +40,6 @@ #define LOCK_TEMPSYNC 27 // R . LOCK on replica. -inline const char *get_scatterlock_state_name(int s) { - switch(s) { - case LOCK_SYNC: return "sync"; - case LOCK_SYNC_LOCK: return "sync->lock"; - case LOCK_SYNC_SCATTER: return "sync->scatter"; - - case LOCK_LOCK_SYNC: return "lock->sync"; - case LOCK_LOCK: return "lock"; - case LOCK_LOCK_TEMPSYNC: return "lock->tempsync"; - - case LOCK_SCATTER_LOCK: return "scatter->lock"; - case LOCK_SCATTER: return "scatter"; - case LOCK_SCATTER_TEMPSYNC: return "scatter->tempsync"; - - case LOCK_TEMPSYNC_SCATTER: return "tempsync->scatter"; - case LOCK_TEMPSYNC_LOCK: return "tempsync->lock"; - case LOCK_TEMPSYNC: return "tempsync"; - - default: assert(0); return 0; - } -} class ScatterLock : public SimpleLock { bool updated; @@ -78,6 +57,28 @@ public: xlistitem_updated.remove_myself(); // FIXME this should happen sooner, i think... } + const char *get_scatterlock_state_name(int s) { + switch(s) { + case LOCK_SYNC: return "sync"; + case LOCK_SYNC_LOCK: return "sync->lock"; + case LOCK_SYNC_SCATTER: return "sync->scatter"; + + case LOCK_LOCK_SYNC: return "lock->sync"; + case LOCK_LOCK: return "lock"; + case LOCK_LOCK_TEMPSYNC: return "lock->tempsync"; + + case LOCK_SCATTER_LOCK: return "scatter->lock"; + case LOCK_SCATTER: return "scatter"; + case LOCK_SCATTER_TEMPSYNC: return "scatter->tempsync"; + + case LOCK_TEMPSYNC_SCATTER: return "tempsync->scatter"; + case LOCK_TEMPSYNC_LOCK: return "tempsync->lock"; + case LOCK_TEMPSYNC: return "tempsync"; + + default: assert(0); return 0; + } + } + int get_replica_state() const { switch (state) { case LOCK_SYNC: @@ -157,17 +158,7 @@ public: void print(ostream& out) { out << "("; - out << get_lock_type_name(get_type()) << " "; - out << get_scatterlock_state_name(get_state()); - if (!get_gather_set().empty()) out << " g=" << get_gather_set(); - if (get_num_client_lease()) - out << " c=" << get_num_client_lease(); - if (is_rdlocked()) - out << " r=" << get_num_rdlocks(); - if (is_xlocked()) - out << " x=" << get_xlocked_by(); - if (is_wrlocked()) - out << " wr=" << get_num_wrlocks(); + _print(out); if (updated) out << " updated"; out << ")"; diff --git a/src/mds/SimpleLock.h b/src/mds/SimpleLock.h index 913420194ac6b..1ac9c6e413ffd 100644 --- a/src/mds/SimpleLock.h +++ b/src/mds/SimpleLock.h @@ -45,17 +45,6 @@ inline const char *get_lock_type_name(int t) { #define LOCK_LOCK_SYNC -51 // A R w #define LOCK_REMOTEXLOCK -50 // on NON-auth -inline const char *get_simplelock_state_name(int n) { - switch (n) { - case LOCK_UNDEF: return "UNDEF"; - case LOCK_SYNC: return "sync"; - case LOCK_LOCK: return "lock"; - case LOCK_SYNC_LOCK: return "sync->lock"; - case LOCK_LOCK_SYNC: return "lock->sync"; - case LOCK_REMOTEXLOCK: return "remote_xlock"; - default: assert(0); return 0; - } -} /* @@ -85,6 +74,18 @@ public: static const int WAIT_BITS = 4; static const __u64 WAIT_ALL = ((1<lock"; + case LOCK_LOCK_SYNC: return "lock->sync"; + case LOCK_REMOTEXLOCK: return "remote_xlock"; + default: assert(0); return 0; + } + } + protected: // parent (what i lock) MDSCacheObject *parent; @@ -357,17 +358,24 @@ public: return false; } - virtual void print(ostream& out) { - out << "("; + void _print(ostream& out) { out << get_lock_type_name(get_type()) << " "; - out << get_simplelock_state_name(get_state()); - if (!get_gather_set().empty()) out << " g=" << get_gather_set(); + out << get_state_name(get_state()); + if (!get_gather_set().empty()) + out << " g=" << get_gather_set(); if (num_client_lease) - out << " c=" << num_client_lease; + out << " l=" << num_client_lease; if (is_rdlocked()) out << " r=" << get_num_rdlocks(); + if (is_wrlocked()) + out << " w=" << get_num_wrlocks(); if (is_xlocked()) out << " x=" << get_xlocked_by(); + } + + virtual void print(ostream& out) { + out << "("; + _print(out); out << ")"; } }; -- 2.39.5