[Ocfs2-devel] [PATCH] ocfs2: replace obsoleted LKM_* dlm level with DLM_LOCK_* constants

Coly Li coyli at suse.de
Wed Nov 12 01:26:24 PST 2008


Current code still contains obsoleted LKM_* constants for dlm levels, the patch tries to replace the
obsoleted ones with DLM_LOCK_* constants which are from <linux/dlmconstants.h>.

Signed-off-by: Coly Li <coyli at suse.de>
---
 fs/ocfs2/dlm/dlmapi.h        |   11 -------
 fs/ocfs2/dlm/dlmast.c        |   16 +++++-----
 fs/ocfs2/dlm/dlmcommon.h     |   15 +++++----
 fs/ocfs2/dlm/dlmconvert.c    |   18 ++++++------
 fs/ocfs2/dlm/dlmfs.c         |    7 ++--
 fs/ocfs2/dlm/dlmlock.c       |    8 ++--
 fs/ocfs2/dlm/dlmrecovery.c   |   38 ++++++++++++------------
 fs/ocfs2/dlm/dlmthread.c     |   20 ++++++------
 fs/ocfs2/dlm/dlmunlock.c     |   12 ++++----
 fs/ocfs2/dlm/userdlm.c       |   64 +++++++++++++++++++++---------------------
 fs/ocfs2/dlmglue.c           |    4 +-
 fs/ocfs2/locks.c             |    4 +-
 fs/ocfs2/stack_o2cb.c        |   24 +---------------
 include/linux/dlmconstants.h |    1 +
 14 files changed, 106 insertions(+), 136 deletions(-)

diff --git a/fs/ocfs2/dlm/dlmapi.h b/fs/ocfs2/dlm/dlmapi.h
index b5786a7..95838f0 100644
--- a/fs/ocfs2/dlm/dlmapi.h
+++ b/fs/ocfs2/dlm/dlmapi.h
@@ -115,17 +115,6 @@ struct dlm_lockstatus {
 	char lvb[DLM_LVB_LEN];
 };

-/* Valid lock modes. */
-#define LKM_IVMODE      (-1)            /* invalid mode */
-#define LKM_NLMODE      0               /* null lock */
-#define LKM_CRMODE      1               /* concurrent read    unsupported */
-#define LKM_CWMODE      2               /* concurrent write   unsupported */
-#define LKM_PRMODE      3               /* protected read */
-#define LKM_PWMODE      4               /* protected write    unsupported */
-#define LKM_EXMODE      5               /* exclusive */
-#define LKM_MAXMODE     5
-#define LKM_MODEMASK    0xff
-
 /* Flags passed to dlmlock and dlmunlock:
  * reserved: flags used by the "real" dlm
  * only a few are supported by this dlm
diff --git a/fs/ocfs2/dlm/dlmast.c b/fs/ocfs2/dlm/dlmast.c
index 644bee5..3d85a6b 100644
--- a/fs/ocfs2/dlm/dlmast.c
+++ b/fs/ocfs2/dlm/dlmast.c
@@ -68,22 +68,22 @@ static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
 	assert_spin_locked(&dlm->ast_lock);
 	assert_spin_locked(&lock->spinlock);

-	if (lock->ml.highest_blocked == LKM_IVMODE)
+	if (lock->ml.highest_blocked == DLM_LOCK_IV)
 		return 0;
-	BUG_ON(lock->ml.highest_blocked == LKM_NLMODE);
+	BUG_ON(lock->ml.highest_blocked == DLM_LOCK_NL);

 	if (lock->bast_pending &&
 	    list_empty(&lock->bast_list))
 		/* old bast already sent, ok */
 		return 0;

-	if (lock->ml.type == LKM_EXMODE)
+	if (lock->ml.type == DLM_LOCK_EX)
 		/* EX blocks anything left, any bast still valid */
 		return 0;
-	else if (lock->ml.type == LKM_NLMODE)
+	else if (lock->ml.type == DLM_LOCK_NL)
 		/* NL blocks nothing, no reason to send any bast, cancel it */
 		return 1;
-	else if (lock->ml.highest_blocked != LKM_EXMODE)
+	else if (lock->ml.highest_blocked != DLM_LOCK_EX)
 		/* PR only blocks EX */
 		return 1;

@@ -118,7 +118,7 @@ static void __dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
 		     dlm->name, res->lockname.len, res->lockname.name);
 		lock->bast_pending = 0;
 		list_del_init(&lock->bast_list);
-		lock->ml.highest_blocked = LKM_IVMODE;
+		lock->ml.highest_blocked = DLM_LOCK_IV;
 		/* removing lock from list, remove a ref.  guaranteed
 		 * this won't be the last ref because of the get above,
 		 * so res->spinlock will not be taken here */
@@ -385,9 +385,9 @@ do_ast:
 		list_move_tail(&lock->list, &res->granted);
 		mlog(0, "ast: adding to granted list... type=%d, "
 			  "convert_type=%d\n", lock->ml.type, lock->ml.convert_type);
-		if (lock->ml.convert_type != LKM_IVMODE) {
+		if (lock->ml.convert_type != DLM_LOCK_IV) {
 			lock->ml.type = lock->ml.convert_type;
-			lock->ml.convert_type = LKM_IVMODE;
+			lock->ml.convert_type = DLM_LOCK_IV;
 		} else {
 			// should already be there....
 		}
diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h
index d5a86fb..59790a9 100644
--- a/fs/ocfs2/dlm/dlmcommon.h
+++ b/fs/ocfs2/dlm/dlmcommon.h
@@ -26,6 +26,7 @@
 #define DLMCOMMON_H

 #include <linux/kref.h>
+#include <linux/dlmconstants.h>

 #define DLM_HB_NODE_DOWN_PRI     (0xf000000)
 #define DLM_HB_NODE_UP_PRI       (0x8000000)
@@ -1027,11 +1028,11 @@ int __dlm_lockres_unused(struct dlm_lock_resource *res);
 static inline const char * dlm_lock_mode_name(int mode)
 {
 	switch (mode) {
-		case LKM_EXMODE:
+		case DLM_LOCK_EX:
 			return "EX";
-		case LKM_PRMODE:
+		case DLM_LOCK_PR:
 			return "PR";
-		case LKM_NLMODE:
+		case DLM_LOCK_NL:
 			return "NL";
 	}
 	return "UNKNOWN";
@@ -1041,16 +1042,16 @@ static inline const char * dlm_lock_mode_name(int mode)
 static inline int dlm_lock_compatible(int existing, int request)
 {
 	/* NO_LOCK compatible with all */
-	if (request == LKM_NLMODE ||
-	    existing == LKM_NLMODE)
+	if (request == DLM_LOCK_NL ||
+	    existing == DLM_LOCK_NL)
 		return 1;

 	/* EX incompatible with all non-NO_LOCK */
-	if (request == LKM_EXMODE)
+	if (request == DLM_LOCK_EX)
 		return 0;

 	/* request must be PR, which is compatible with PR */
-	if (existing == LKM_PRMODE)
+	if (existing == DLM_LOCK_PR)
 		return 1;

 	return 0;
diff --git a/fs/ocfs2/dlm/dlmconvert.c b/fs/ocfs2/dlm/dlmconvert.c
index 75997b4..f117cf8 100644
--- a/fs/ocfs2/dlm/dlmconvert.c
+++ b/fs/ocfs2/dlm/dlmconvert.c
@@ -136,7 +136,7 @@ static enum dlm_status __dlmconvert_master(struct dlm_ctxt *dlm,
 	spin_lock(&lock->spinlock);

 	/* already converting? */
-	if (lock->ml.convert_type != LKM_IVMODE) {
+	if (lock->ml.convert_type != DLM_LOCK_IV) {
 		mlog(ML_ERROR, "attempted to convert a lock with a lock "
 		     "conversion pending\n");
 		status = DLM_DENIED;
@@ -153,17 +153,17 @@ static enum dlm_status __dlmconvert_master(struct dlm_ctxt *dlm,

 	if (flags & LKM_VALBLK) {
 		switch (lock->ml.type) {
-			case LKM_EXMODE:
+			case DLM_LOCK_EX:
 				/* EX + LKM_VALBLK + convert == set lvb */
 				mlog(0, "will set lvb: converting %s->%s\n",
 				     dlm_lock_mode_name(lock->ml.type),
 				     dlm_lock_mode_name(type));
 				lock->lksb->flags |= DLM_LKSB_PUT_LVB;
 				break;
-			case LKM_PRMODE:
-			case LKM_NLMODE:
+			case DLM_LOCK_PR:
+			case DLM_LOCK_NL:
 				/* refetch if new level is not NL */
-				if (type > LKM_NLMODE) {
+				if (type > DLM_LOCK_NL) {
 					mlog(0, "will fetch new value into "
 					     "lvb: converting %s->%s\n",
 					     dlm_lock_mode_name(lock->ml.type),
@@ -251,7 +251,7 @@ void dlm_revert_pending_convert(struct dlm_lock_resource *res,
 {
 	/* do not alter lock refcount.  switching lists. */
 	list_move_tail(&lock->list, &res->granted);
-	lock->ml.convert_type = LKM_IVMODE;
+	lock->ml.convert_type = DLM_LOCK_IV;
 	lock->lksb->flags &= ~(DLM_LKSB_GET_LVB|DLM_LKSB_PUT_LVB);
 }

@@ -282,7 +282,7 @@ enum dlm_status dlmconvert_remote(struct dlm_ctxt *dlm,
 	/* will exit this call with spinlock held */
 	__dlm_wait_on_lockres(res);

-	if (lock->ml.convert_type != LKM_IVMODE) {
+	if (lock->ml.convert_type != DLM_LOCK_IV) {
 		__dlm_print_one_lock_resource(res);
 		mlog(ML_ERROR, "converting a remote lock that is already "
 		     "converting! (cookie=%u:%llu, conv=%d)\n",
@@ -300,11 +300,11 @@ enum dlm_status dlmconvert_remote(struct dlm_ctxt *dlm,
 	lock->ml.convert_type = type;

 	if (flags & LKM_VALBLK) {
-		if (lock->ml.type == LKM_EXMODE) {
+		if (lock->ml.type == DLM_LOCK_EX) {
 			flags |= LKM_PUT_LVB;
 			lock->lksb->flags |= DLM_LKSB_PUT_LVB;
 		} else {
-			if (lock->ml.convert_type == LKM_NLMODE)
+			if (lock->ml.convert_type == DLM_LOCK_NL)
 				flags &= ~LKM_VALBLK;
 			else {
 				flags |= LKM_GET_LVB;
diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c
index 533a789..2aae623 100644
--- a/fs/ocfs2/dlm/dlmfs.c
+++ b/fs/ocfs2/dlm/dlmfs.c
@@ -43,6 +43,7 @@
 #include <linux/init.h>
 #include <linux/string.h>
 #include <linux/backing-dev.h>
+#include <linux/dlmconstants.h>

 #include <asm/uaccess.h>

@@ -95,9 +96,9 @@ static int dlmfs_decode_open_flags(int open_flags,
 				   int *flags)
 {
 	if (open_flags & (O_WRONLY|O_RDWR))
-		*level = LKM_EXMODE;
+		*level = DLM_LOCK_EX;
 	else
-		*level = LKM_PRMODE;
+		*level = DLM_LOCK_PR;

 	*flags = 0;
 	if (open_flags & O_NONBLOCK)
@@ -169,7 +170,7 @@ static int dlmfs_file_release(struct inode *inode,
 	status = 0;
 	if (fp) {
 		level = fp->fp_lock_level;
-		if (level != LKM_IVMODE)
+		if (level != DLM_LOCK_IV)
 			user_dlm_cluster_unlock(&ip->ip_lockres, level);

 		kfree(fp);
diff --git a/fs/ocfs2/dlm/dlmlock.c b/fs/ocfs2/dlm/dlmlock.c
index 83a9f29..b2e76ab 100644
--- a/fs/ocfs2/dlm/dlmlock.c
+++ b/fs/ocfs2/dlm/dlmlock.c
@@ -403,8 +403,8 @@ static void dlm_init_lock(struct dlm_lock *newlock, int type,
 	INIT_LIST_HEAD(&newlock->bast_list);
 	spin_lock_init(&newlock->spinlock);
 	newlock->ml.type = type;
-	newlock->ml.convert_type = LKM_IVMODE;
-	newlock->ml.highest_blocked = LKM_IVMODE;
+	newlock->ml.convert_type = DLM_LOCK_IV;
+	newlock->ml.highest_blocked = DLM_LOCK_IV;
 	newlock->ml.node = node;
 	newlock->ml.pad1 = 0;
 	newlock->ml.list = 0;
@@ -580,7 +580,7 @@ enum dlm_status dlmlock(struct dlm_ctxt *dlm, int mode,
 	}

 	status = DLM_BADPARAM;
-	if (mode != LKM_EXMODE && mode != LKM_PRMODE && mode != LKM_NLMODE) {
+	if (mode != DLM_LOCK_EX && mode != DLM_LOCK_PR && mode != DLM_LOCK_NL) {
 		dlm_error(status);
 		goto error;
 	}
@@ -703,7 +703,7 @@ retry_lock:

 			/* LVB requests for non PR, PW or EX locks are
 			 * ignored. */
-			if (mode < LKM_PRMODE)
+			if (mode < DLM_LOCK_PR)
 				flags &= ~LKM_VALBLK;
 			else {
 				flags |= LKM_GET_LVB;
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index bcb9260..947f70c 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -1183,12 +1183,12 @@ static int dlm_add_lock_to_array(struct dlm_lock *lock,
 	if (lock->lksb) {
 		ml->flags = lock->lksb->flags;
 		/* send our current lvb */
-		if (ml->type == LKM_EXMODE ||
-		    ml->type == LKM_PRMODE) {
+		if (ml->type == DLM_LOCK_EX ||
+		    ml->type == DLM_LOCK_PR) {
 			/* if it is already set, this had better be a PR
 			 * and it has to match */
 			if (!dlm_lvb_is_empty(mres->lvb) &&
-			    (ml->type == LKM_EXMODE ||
+			    (ml->type == DLM_LOCK_EX ||
 			     memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN))) {
 				mlog(ML_ERROR, "mismatched lvbs!\n");
 				dlm_print_one_lock_resource(lock->lockres);
@@ -1211,9 +1211,9 @@ static void dlm_add_dummy_lock(struct dlm_ctxt *dlm,
 	struct dlm_lock dummy;
 	memset(&dummy, 0, sizeof(dummy));
 	dummy.ml.cookie = 0;
-	dummy.ml.type = LKM_IVMODE;
-	dummy.ml.convert_type = LKM_IVMODE;
-	dummy.ml.highest_blocked = LKM_IVMODE;
+	dummy.ml.type = DLM_LOCK_IV;
+	dummy.ml.convert_type = DLM_LOCK_IV;
+	dummy.ml.highest_blocked = DLM_LOCK_IV;
 	dummy.lksb = NULL;
 	dummy.ml.node = dlm->node_num;
 	dlm_add_lock_to_array(&dummy, mres, DLM_BLOCKED_LIST);
@@ -1224,9 +1224,9 @@ static inline int dlm_is_dummy_lock(struct dlm_ctxt *dlm,
 				    u8 *nodenum)
 {
 	if (unlikely(ml->cookie == 0 &&
-	    ml->type == LKM_IVMODE &&
-	    ml->convert_type == LKM_IVMODE &&
-	    ml->highest_blocked == LKM_IVMODE &&
+	    ml->type == DLM_LOCK_IV &&
+	    ml->convert_type == DLM_LOCK_IV &&
+	    ml->highest_blocked == DLM_LOCK_IV &&
 	    ml->list == DLM_BLOCKED_LIST)) {
 		*nodenum = ml->node;
 		return 1;
@@ -1748,7 +1748,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
 			added++;
 			break;
 		}
-		BUG_ON(ml->highest_blocked != LKM_IVMODE);
+		BUG_ON(ml->highest_blocked != DLM_LOCK_IV);
 		newlock = NULL;
 		lksb = NULL;

@@ -1818,14 +1818,14 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
 		lksb = newlock->lksb;
 		dlm_lock_attach_lockres(newlock, res);

-		if (ml->convert_type != LKM_IVMODE) {
+		if (ml->convert_type != DLM_LOCK_IV) {
 			BUG_ON(queue != &res->converting);
 			newlock->ml.convert_type = ml->convert_type;
 		}
 		lksb->flags |= (ml->flags &
 				(DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB));

-		if (ml->type == LKM_NLMODE)
+		if (ml->type == DLM_LOCK_NL)
 			goto skip_lvb;

 		if (!dlm_lvb_is_empty(mres->lvb)) {
@@ -1842,10 +1842,10 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
 			} else {
 				/* otherwise, the node is sending its
 				 * most recent valid lvb info */
-				BUG_ON(ml->type != LKM_EXMODE &&
-				       ml->type != LKM_PRMODE);
+				BUG_ON(ml->type != DLM_LOCK_EX &&
+				       ml->type != DLM_LOCK_PR);
 				if (!dlm_lvb_is_empty(res->lvb) &&
- 				    (ml->type == LKM_EXMODE ||
+ 				    (ml->type == DLM_LOCK_EX ||
  				     memcmp(res->lvb, mres->lvb, DLM_LVB_LEN))) {
  					int i;
  					mlog(ML_ERROR, "%s:%.*s: received bad "
@@ -2094,10 +2094,10 @@ static void dlm_finish_local_lockres_recovery(struct dlm_ctxt *dlm,
 static inline int dlm_lvb_needs_invalidation(struct dlm_lock *lock, int local)
 {
 	if (local) {
-		if (lock->ml.type != LKM_EXMODE &&
-		    lock->ml.type != LKM_PRMODE)
+		if (lock->ml.type != DLM_LOCK_EX &&
+		    lock->ml.type != DLM_LOCK_PR)
 			return 1;
-	} else if (lock->ml.type == LKM_EXMODE)
+	} else if (lock->ml.type == DLM_LOCK_EX)
 		return 1;
 	return 0;
 }
@@ -2428,7 +2428,7 @@ static int dlm_pick_recovery_master(struct dlm_ctxt *dlm)
 again:	
 	memset(&lksb, 0, sizeof(lksb));

-	ret = dlmlock(dlm, LKM_EXMODE, &lksb, LKM_NOQUEUE|LKM_RECOVERY,
+	ret = dlmlock(dlm, DLM_LOCK_EX, &lksb, LKM_NOQUEUE|LKM_RECOVERY,
 		      DLM_RECOVERY_LOCK_NAME, DLM_RECOVERY_LOCK_NAME_LEN,
 		      dlm_reco_ast, dlm, dlm_reco_bast);

diff --git a/fs/ocfs2/dlm/dlmthread.c b/fs/ocfs2/dlm/dlmthread.c
index 4060bb3..80f1c29 100644
--- a/fs/ocfs2/dlm/dlmthread.c
+++ b/fs/ocfs2/dlm/dlmthread.c
@@ -303,7 +303,7 @@ converting:
 	     res->lockname.name);

 	target = list_entry(res->converting.next, struct dlm_lock, list);
-	if (target->ml.convert_type == LKM_IVMODE) {
+	if (target->ml.convert_type == DLM_LOCK_IV) {
 		mlog(ML_ERROR, "%.*s: converting a lock with no "
 		     "convert_type!\n", res->lockname.len, res->lockname.name);
 		BUG();
@@ -317,7 +317,7 @@ converting:
 					 target->ml.convert_type)) {
 			can_grant = 0;
 			/* queue the BAST if not already */
-			if (lock->ml.highest_blocked == LKM_IVMODE) {
+			if (lock->ml.highest_blocked == DLM_LOCK_IV) {
 				__dlm_lockres_reserve_ast(res);
 				dlm_queue_bast(dlm, lock);
 			}
@@ -335,7 +335,7 @@ converting:
 		if (!dlm_lock_compatible(lock->ml.type,
 					 target->ml.convert_type)) {
 			can_grant = 0;
-			if (lock->ml.highest_blocked == LKM_IVMODE) {
+			if (lock->ml.highest_blocked == DLM_LOCK_IV) {
 				__dlm_lockres_reserve_ast(res);
 				dlm_queue_bast(dlm, lock);
 			}
@@ -348,7 +348,7 @@ converting:
 	/* we can convert the lock */
 	if (can_grant) {
 		spin_lock(&target->spinlock);
-		BUG_ON(target->ml.highest_blocked != LKM_IVMODE);
+		BUG_ON(target->ml.highest_blocked != DLM_LOCK_IV);

 		mlog(0, "calling ast for converting lock: %.*s, have: %d, "
 		     "granting: %d, node: %u\n", res->lockname.len,
@@ -356,7 +356,7 @@ converting:
 		     target->ml.convert_type, target->ml.node);

 		target->ml.type = target->ml.convert_type;
-		target->ml.convert_type = LKM_IVMODE;
+		target->ml.convert_type = DLM_LOCK_IV;
 		list_move_tail(&target->list, &res->granted);

 		BUG_ON(!target->lksb);
@@ -382,7 +382,7 @@ blocked:
 			continue;
 		if (!dlm_lock_compatible(lock->ml.type, target->ml.type)) {
 			can_grant = 0;
-			if (lock->ml.highest_blocked == LKM_IVMODE) {
+			if (lock->ml.highest_blocked == DLM_LOCK_IV) {
 				__dlm_lockres_reserve_ast(res);
 				dlm_queue_bast(dlm, lock);
 			}
@@ -398,7 +398,7 @@ blocked:
 			continue;
 		if (!dlm_lock_compatible(lock->ml.type, target->ml.type)) {
 			can_grant = 0;
-			if (lock->ml.highest_blocked == LKM_IVMODE) {
+			if (lock->ml.highest_blocked == DLM_LOCK_IV) {
 				__dlm_lockres_reserve_ast(res);
 				dlm_queue_bast(dlm, lock);
 			}
@@ -411,7 +411,7 @@ blocked:
 	 * possible if converting list empty) */
 	if (can_grant) {
 		spin_lock(&target->spinlock);
-		BUG_ON(target->ml.highest_blocked != LKM_IVMODE);
+		BUG_ON(target->ml.highest_blocked != DLM_LOCK_IV);

 		mlog(0, "calling ast for blocked lock: %.*s, granting: %d, "
 		     "node: %u\n", res->lockname.len, res->lockname.name,
@@ -565,9 +565,9 @@ static void dlm_flush_asts(struct dlm_ctxt *dlm)

 		/* get the highest blocked lock, and reset */
 		spin_lock(&lock->spinlock);
-		BUG_ON(lock->ml.highest_blocked <= LKM_IVMODE);
+		BUG_ON(lock->ml.highest_blocked <= DLM_LOCK_IV);
 		hi = lock->ml.highest_blocked;
-		lock->ml.highest_blocked = LKM_IVMODE;
+		lock->ml.highest_blocked = DLM_LOCK_IV;
 		spin_unlock(&lock->spinlock);

 		/* remove from list (including ref) */
diff --git a/fs/ocfs2/dlm/dlmunlock.c b/fs/ocfs2/dlm/dlmunlock.c
index 86ca085..940978a 100644
--- a/fs/ocfs2/dlm/dlmunlock.c
+++ b/fs/ocfs2/dlm/dlmunlock.c
@@ -227,7 +227,7 @@ static enum dlm_status dlmunlock_common(struct dlm_ctxt *dlm,
 	if (actions & DLM_UNLOCK_CLEAR_CONVERT_TYPE) {
 		mlog(0, "clearing convert_type at %smaster node\n",
 		     master_node ? "" : "non-");
-		lock->ml.convert_type = LKM_IVMODE;
+		lock->ml.convert_type = DLM_LOCK_IV;
 	}

 	/* remove the extra ref on lock */
@@ -236,9 +236,9 @@ static enum dlm_status dlmunlock_common(struct dlm_ctxt *dlm,
 leave:
 	res->state &= ~DLM_LOCK_RES_IN_PROGRESS;
 	if (!dlm_lock_on_list(&res->converting, lock))
-		BUG_ON(lock->ml.convert_type != LKM_IVMODE);
+		BUG_ON(lock->ml.convert_type != DLM_LOCK_IV);
 	else
-		BUG_ON(lock->ml.convert_type == LKM_IVMODE);
+		BUG_ON(lock->ml.convert_type == DLM_LOCK_IV);
 	spin_unlock(&lock->spinlock);
 	spin_unlock(&res->spinlock);
 	wake_up(&res->wq);
@@ -275,7 +275,7 @@ void dlm_commit_pending_cancel(struct dlm_lock_resource *res,
 			       struct dlm_lock *lock)
 {
 	list_move_tail(&lock->list, &res->granted);
-	lock->ml.convert_type = LKM_IVMODE;
+	lock->ml.convert_type = DLM_LOCK_IV;
 }


@@ -482,7 +482,7 @@ int dlm_unlock_lock_handler(struct o2net_msg *msg, u32 len, void *data,
 	/* lock was found on queue */
 	lksb = lock->lksb;
 	if (flags & (LKM_VALBLK|LKM_PUT_LVB) &&
-	    lock->ml.type != LKM_EXMODE)
+	    lock->ml.type != DLM_LOCK_EX)
 		flags &= ~(LKM_VALBLK|LKM_PUT_LVB);

 	/* unlockast only called on originating node */
@@ -625,7 +625,7 @@ retry:

 	spin_lock(&res->spinlock);
 	is_master = (res->owner == dlm->node_num);
-	if (flags & LKM_VALBLK && lock->ml.type != LKM_EXMODE)
+	if (flags & LKM_VALBLK && lock->ml.type != DLM_LOCK_EX)
 		flags &= ~LKM_VALBLK;
 	spin_unlock(&res->spinlock);

diff --git a/fs/ocfs2/dlm/userdlm.c b/fs/ocfs2/dlm/userdlm.c
index 4cb1d3d..6d0bd96 100644
--- a/fs/ocfs2/dlm/userdlm.c
+++ b/fs/ocfs2/dlm/userdlm.c
@@ -33,7 +33,7 @@
 #include <linux/fs.h>
 #include <linux/types.h>
 #include <linux/crc32.h>
-
+#include <linux/dlmconstants.h>

 #include "cluster/nodemanager.h"
 #include "cluster/heartbeat.h"
@@ -113,12 +113,12 @@ static inline void user_recover_from_dlm_error(struct user_lock_res *lockres)
  * lock types are added. */
 static inline int user_highest_compat_lock_level(int level)
 {
-	int new_level = LKM_EXMODE;
+	int new_level = DLM_LOCK_EX;

-	if (level == LKM_EXMODE)
-		new_level = LKM_NLMODE;
-	else if (level == LKM_PRMODE)
-		new_level = LKM_PRMODE;
+	if (level == DLM_LOCK_EX)
+		new_level = DLM_LOCK_NL;
+	else if (level == DLM_LOCK_PR)
+		new_level = DLM_LOCK_PR;
 	return new_level;
 }

@@ -140,7 +140,7 @@ static void user_ast(void *opaque)
 		return;
 	}

-	mlog_bug_on_msg(lockres->l_requested == LKM_IVMODE,
+	mlog_bug_on_msg(lockres->l_requested == DLM_LOCK_IV,
 			"Lockres %.*s, requested ivmode. flags 0x%x\n",
 			lockres->l_namelen, lockres->l_name, lockres->l_flags);

@@ -148,13 +148,13 @@ static void user_ast(void *opaque)
 	if (lockres->l_requested < lockres->l_level) {
 		if (lockres->l_requested <=
 		    user_highest_compat_lock_level(lockres->l_blocking)) {
-			lockres->l_blocking = LKM_NLMODE;
+			lockres->l_blocking = DLM_LOCK_NL;
 			lockres->l_flags &= ~USER_LOCK_BLOCKED;
 		}
 	}

 	lockres->l_level = lockres->l_requested;
-	lockres->l_requested = LKM_IVMODE;
+	lockres->l_requested = DLM_LOCK_IV;
 	lockres->l_flags |= USER_LOCK_ATTACHED;
 	lockres->l_flags &= ~USER_LOCK_BUSY;

@@ -193,11 +193,11 @@ static void __user_dlm_cond_queue_lockres(struct user_lock_res *lockres)
 		return;

 	switch (lockres->l_blocking) {
-	case LKM_EXMODE:
+	case DLM_LOCK_EX:
 		if (!lockres->l_ex_holders && !lockres->l_ro_holders)
 			queue = 1;
 		break;
-	case LKM_PRMODE:
+	case DLM_LOCK_PR:
 		if (!lockres->l_ex_holders)
 			queue = 1;
 		break;
@@ -243,7 +243,7 @@ static void user_unlock_ast(void *opaque, enum dlm_status status)
 	 * for a concurrent cancel. */
 	if (lockres->l_flags & USER_LOCK_IN_TEARDOWN
 	    && !(lockres->l_flags & USER_LOCK_IN_CANCEL)) {
-		lockres->l_level = LKM_IVMODE;
+		lockres->l_level = DLM_LOCK_IV;
 	} else if (status == DLM_CANCELGRANT) {
 		/* We tried to cancel a convert request, but it was
 		 * already granted. Don't clear the busy flag - the
@@ -254,7 +254,7 @@ static void user_unlock_ast(void *opaque, enum dlm_status status)
 	} else {
 		BUG_ON(!(lockres->l_flags & USER_LOCK_IN_CANCEL));
 		/* Cancel succeeded, we want to re-queue */
-		lockres->l_requested = LKM_IVMODE; /* cancel an
+		lockres->l_requested = DLM_LOCK_IV; /* cancel an
 						    * upconvert
 						    * request. */
 		lockres->l_flags &= ~USER_LOCK_IN_CANCEL;
@@ -335,7 +335,7 @@ static void user_dlm_unblock_lock(struct work_struct *work)
 	/* If there are still incompat holders, we can exit safely
 	 * without worrying about re-queueing this lock as that will
 	 * happen on the last call to user_cluster_unlock. */
-	if ((lockres->l_blocking == LKM_EXMODE)
+	if ((lockres->l_blocking == DLM_LOCK_EX)
 	    && (lockres->l_ex_holders || lockres->l_ro_holders)) {
 		spin_unlock(&lockres->l_lock);
 		mlog(0, "can't downconvert for ex: ro = %u, ex = %u\n",
@@ -343,7 +343,7 @@ static void user_dlm_unblock_lock(struct work_struct *work)
 		goto drop_ref;
 	}

-	if ((lockres->l_blocking == LKM_PRMODE)
+	if ((lockres->l_blocking == DLM_LOCK_PR)
 	    && lockres->l_ex_holders) {
 		spin_unlock(&lockres->l_lock);
 		mlog(0, "can't downconvert for pr: ex = %u\n",
@@ -382,10 +382,10 @@ static inline void user_dlm_inc_holders(struct user_lock_res *lockres,
 					int level)
 {
 	switch(level) {
-	case LKM_EXMODE:
+	case DLM_LOCK_EX:
 		lockres->l_ex_holders++;
 		break;
-	case LKM_PRMODE:
+	case DLM_LOCK_PR:
 		lockres->l_ro_holders++;
 		break;
 	default:
@@ -412,8 +412,8 @@ int user_dlm_cluster_lock(struct user_lock_res *lockres,
 	int status, local_flags;
 	struct dlm_ctxt *dlm = dlm_ctxt_from_user_lockres(lockres);

-	if (level != LKM_EXMODE &&
-	    level != LKM_PRMODE) {
+	if (level != DLM_LOCK_EX &&
+	    level != DLM_LOCK_PR) {
 		mlog(ML_ERROR, "lockres %.*s: invalid request!\n",
 		     lockres->l_namelen, lockres->l_name);
 		status = -EINVAL;
@@ -422,7 +422,7 @@ int user_dlm_cluster_lock(struct user_lock_res *lockres,

 	mlog(0, "lockres %.*s: asking for %s lock, passed flags = 0x%x\n",
 	     lockres->l_namelen, lockres->l_name,
-	     (level == LKM_EXMODE) ? "LKM_EXMODE" : "LKM_PRMODE",
+	     (level == DLM_LOCK_EX) ? "DLM_LOCK_EX" : "DLM_LOCK_PR",
 	     lkm_flags);

 again:
@@ -458,15 +458,15 @@ again:

 	if (level > lockres->l_level) {
 		local_flags = lkm_flags | LKM_VALBLK;
-		if (lockres->l_level != LKM_IVMODE)
+		if (lockres->l_level != DLM_LOCK_IV)
 			local_flags |= LKM_CONVERT;

 		lockres->l_requested = level;
 		lockres->l_flags |= USER_LOCK_BUSY;
 		spin_unlock(&lockres->l_lock);

-		BUG_ON(level == LKM_IVMODE);
-		BUG_ON(level == LKM_NLMODE);
+		BUG_ON(level == DLM_LOCK_IV);
+		BUG_ON(level == DLM_LOCK_NL);

 		/* call dlm_lock to upgrade lock now */
 		status = dlmlock(dlm,
@@ -506,11 +506,11 @@ static inline void user_dlm_dec_holders(struct user_lock_res *lockres,
 					int level)
 {
 	switch(level) {
-	case LKM_EXMODE:
+	case DLM_LOCK_EX:
 		BUG_ON(!lockres->l_ex_holders);
 		lockres->l_ex_holders--;
 		break;
-	case LKM_PRMODE:
+	case DLM_LOCK_PR:
 		BUG_ON(!lockres->l_ro_holders);
 		lockres->l_ro_holders--;
 		break;
@@ -522,8 +522,8 @@ static inline void user_dlm_dec_holders(struct user_lock_res *lockres,
 void user_dlm_cluster_unlock(struct user_lock_res *lockres,
 			     int level)
 {
-	if (level != LKM_EXMODE &&
-	    level != LKM_PRMODE) {
+	if (level != DLM_LOCK_EX &&
+	    level != DLM_LOCK_PR) {
 		mlog(ML_ERROR, "lockres %.*s: invalid request!\n",
 		     lockres->l_namelen, lockres->l_name);
 		return;
@@ -546,7 +546,7 @@ void user_dlm_write_lvb(struct inode *inode,

 	spin_lock(&lockres->l_lock);

-	BUG_ON(lockres->l_level < LKM_EXMODE);
+	BUG_ON(lockres->l_level < DLM_LOCK_EX);
 	memcpy(lvb, val, len);

 	spin_unlock(&lockres->l_lock);
@@ -563,7 +563,7 @@ void user_dlm_read_lvb(struct inode *inode,

 	spin_lock(&lockres->l_lock);

-	BUG_ON(lockres->l_level < LKM_PRMODE);
+	BUG_ON(lockres->l_level < DLM_LOCK_PR);
 	memcpy(val, lvb, len);

 	spin_unlock(&lockres->l_lock);
@@ -576,9 +576,9 @@ void user_dlm_lock_res_init(struct user_lock_res *lockres,

 	spin_lock_init(&lockres->l_lock);
 	init_waitqueue_head(&lockres->l_event);
-	lockres->l_level = LKM_IVMODE;
-	lockres->l_requested = LKM_IVMODE;
-	lockres->l_blocking = LKM_IVMODE;
+	lockres->l_level = DLM_LOCK_IV;
+	lockres->l_requested = DLM_LOCK_IV;
+	lockres->l_blocking = DLM_LOCK_IV;

 	/* should have been checked before getting here. */
 	BUG_ON(dentry->d_name.len >= USER_DLM_LOCK_ID_MAX_LEN);
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index ec68442..b1b47bd 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -392,12 +392,12 @@ static void ocfs2_update_lock_stats(struct ocfs2_lock_res *res, int level,
 	struct timespec ts = current_kernel_time();
 	unsigned long long time = timespec_to_ns(&ts) - mw->mw_lock_start;

-	if (level == LKM_PRMODE) {
+	if (level == DLM_LOCK_PR) {
 		num = &res->l_lock_num_prmode;
 		sum = &res->l_lock_total_prmode;
 		max = &res->l_lock_max_prmode;
 		failed = &res->l_lock_num_prmode_failed;
-	} else if (level == LKM_EXMODE) {
+	} else if (level == DLM_LOCK_EX) {
 		num = &res->l_lock_num_exmode;
 		sum = &res->l_lock_total_exmode;
 		max = &res->l_lock_max_exmode;
diff --git a/fs/ocfs2/locks.c b/fs/ocfs2/locks.c
index 544ac62..eb0a42d 100644
--- a/fs/ocfs2/locks.c
+++ b/fs/ocfs2/locks.c
@@ -51,10 +51,10 @@ static int ocfs2_do_flock(struct file *file, struct inode *inode,
 	mutex_lock(&fp->fp_mutex);

 	if (lockres->l_flags & OCFS2_LOCK_ATTACHED &&
-	    lockres->l_level > LKM_NLMODE) {
+	    lockres->l_level > DLM_LOCK_NL) {
 		int old_level = 0;

-		if (lockres->l_level == LKM_EXMODE)
+		if (lockres->l_level == DLM_LOCK_EX)
 			old_level = 1;

 		if (level == old_level)
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c
index fcd120f..351a06f 100644
--- a/fs/ocfs2/stack_o2cb.c
+++ b/fs/ocfs2/stack_o2cb.c
@@ -35,31 +35,9 @@ struct o2dlm_private {

 static struct ocfs2_stack_plugin o2cb_stack;

-/* These should be identical */
-#if (DLM_LOCK_IV != LKM_IVMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_NL != LKM_NLMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_CR != LKM_CRMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_CW != LKM_CWMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_PR != LKM_PRMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_PW != LKM_PWMODE)
-# error Lock modes do not match
-#endif
-#if (DLM_LOCK_EX != LKM_EXMODE)
-# error Lock modes do not match
-#endif
 static inline int mode_to_o2dlm(int mode)
 {
-	BUG_ON(mode > LKM_MAXMODE);
+	BUG_ON(mode > DLM_LOCK_MAX);

 	return mode;
 }
diff --git a/include/linux/dlmconstants.h b/include/linux/dlmconstants.h
index 47bf08d..f87bbc1 100644
--- a/include/linux/dlmconstants.h
+++ b/include/linux/dlmconstants.h
@@ -33,6 +33,7 @@
 #define DLM_LOCK_PR		3	/* protected read */
 #define DLM_LOCK_PW		4	/* protected write */
 #define DLM_LOCK_EX		5	/* exclusive */
+#define DLM_LOCK_MAX		5


 /*
-- 
Coly Li
SuSE PRC Labs



More information about the Ocfs2-devel mailing list