X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fmds%2Flocks.h;fp=src%2Fceph%2Fsrc%2Fmds%2Flocks.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=9f4ea566b4a1024bda32ecaf3083262e2557bf8c;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/mds/locks.h b/src/ceph/src/mds/locks.h deleted file mode 100644 index 9f4ea56..0000000 --- a/src/ceph/src/mds/locks.h +++ /dev/null @@ -1,145 +0,0 @@ - -#ifndef CEPH_MDS_LOCKS_H -#define CEPH_MDS_LOCKS_H - -struct sm_state_t { - int next; // 0 if stable - char loner; - int replica_state; - char can_read; - char can_read_projected; - char can_rdlock; - char can_wrlock; - char can_force_wrlock; - char can_lease; - char can_xlock; - int caps; - int loner_caps; - int xlocker_caps; - int replica_caps; -}; - -struct sm_t { - const struct sm_state_t *states; - int allowed_ever_auth; - int allowed_ever_replica; - int careful; - int can_remote_xlock; -}; - -#define ANY 1 // auth or replica -#define AUTH 2 // auth only -#define XCL 3 // auth or exclusive client -//#define FW 4 // fw to auth, if replica -#define REQ 5 // req state change from auth, if replica - -extern const struct sm_t sm_simplelock; -extern const struct sm_t sm_filelock; -extern const struct sm_t sm_scatterlock; -extern const struct sm_t sm_locallock; - - - -// -- lock states -- -// sync <-> lock -enum { - LOCK_UNDEF = 0, - - // auth rep - LOCK_SYNC, // AR R . RD L . / C . R RD L . / C . - LOCK_LOCK, // AR R . .. . X / . . . .. . . / . . - - LOCK_PREXLOCK, // A . . .. . . / . . (lock) - LOCK_XLOCK, // A . . .. . . / . . (lock) - LOCK_XLOCKDONE, // A r p rd l x / . . (lock) <-- by same client only!! - LOCK_XLOCKSNAP, // also revoke Fb - LOCK_LOCK_XLOCK, - - LOCK_SYNC_LOCK, // AR R . .. . . / . . R .. . . / . . - LOCK_LOCK_SYNC, // A R p rd l . / . . (lock) <-- lc by same client only - - LOCK_EXCL, // A . . .. . . / c x * (lock) - LOCK_EXCL_SYNC, // A . . .. . . / c . * (lock) - LOCK_EXCL_LOCK, // A . . .. . . / . . (lock) - LOCK_SYNC_EXCL, // Ar R . .. . . / c . * (sync->lock) - LOCK_LOCK_EXCL, // A R . .. . . / . . (lock) - - LOCK_REMOTEXLOCK, // on NON-auth - - // * = loner mode - - LOCK_MIX, - LOCK_SYNC_MIX, - LOCK_SYNC_MIX2, - LOCK_LOCK_MIX, - LOCK_EXCL_MIX, - LOCK_MIX_SYNC, - LOCK_MIX_SYNC2, - LOCK_MIX_LOCK, - LOCK_MIX_LOCK2, - LOCK_MIX_EXCL, - - LOCK_TSYN, - LOCK_TSYN_LOCK, - LOCK_TSYN_MIX, - LOCK_LOCK_TSYN, - LOCK_MIX_TSYN, - - LOCK_PRE_SCAN, - LOCK_SCAN, - - LOCK_SNAP_SYNC, - - LOCK_XSYN, - LOCK_XSYN_EXCL, - LOCK_EXCL_XSYN, - LOCK_XSYN_SYNC, - - LOCK_MAX, -}; - -// ------------------------- -// lock actions - -// for replicas -#define LOCK_AC_SYNC -1 -#define LOCK_AC_MIX -2 -#define LOCK_AC_LOCK -3 -#define LOCK_AC_LOCKFLUSHED -4 - -// 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_REQRDLOCK 10 - -#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_LOCKFLUSHED: return "lockflushed"; - - 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"; - case LOCK_AC_REQRDLOCK: return "reqrdlock"; - default: return "???"; - } -} - - - -#endif