[Ocfs2-commits] mfasheh commits r1056 - in trunk: . src src/inc

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Jun 11 17:43:35 CDT 2004


Author: mfasheh
Date: 2004-06-11 16:43:33 -0500 (Fri, 11 Jun 2004)
New Revision: 1056

Modified:
   trunk/TODO
   trunk/src/alloc.c
   trunk/src/dir.c
   trunk/src/dlm.c
   trunk/src/file.c
   trunk/src/inc/proto.h
   trunk/src/inode.c
   trunk/src/journal.c
   trunk/src/namei.c
Log:
* remove the lock_id arguments from ocfs_acquire_lock and
  ocfs_release_lock -- they get them from the inode now.



Modified: trunk/TODO
===================================================================
--- trunk/TODO	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/TODO	2004-06-11 21:43:33 UTC (rev 1056)
@@ -34,9 +34,6 @@
   different and / or special cased. In a related todo: Get rid of the 
   INODE_JOURNAL flag on our inodes and use the system file flag instead.
 
-* now that acquire_lock and release_lock take inodes, get rid of the lock_id
-  and other redundant arguments in the prototype.
-
 * Go through the code and remove every spot where we look inside a bh for a
   value which is right there on an inode (like, whether it's a directory or
   not, fe / vote offsets, lock flags, etc). This includes passing redundant

Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/alloc.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -323,8 +323,8 @@
 			}
 			down(&OCFS_I(extnode_inode[i])->ip_io_sem);
 
-			status = ocfs_acquire_lock (osb, lock_id,
-				 		    OCFS_DLM_EXCLUSIVE_LOCK,
+			status = ocfs_acquire_lock (osb, 
+						    OCFS_DLM_EXCLUSIVE_LOCK,
 						    FLAG_FILE_CREATE,
 						    &ugly_hack_bh, 
 						    extnode_inode[i]);
@@ -352,8 +352,7 @@
 		}
 		down(&OCFS_I(vol_inode)->ip_io_sem);
 
-		status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
-					    OCFS_DLM_EXCLUSIVE_LOCK,
+		status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 					    FLAG_FILE_CREATE,
 					    &globalbh, vol_inode);
 		if (status < 0) {
@@ -413,8 +412,7 @@
 		ocfs_abort_trans(handle);
 
 	if (free_vol_bits) {
-		status = ocfs_release_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
-					    OCFS_DLM_EXCLUSIVE_LOCK,
+		status = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 					    FLAG_FILE_CREATE, globalbh, 
 					    vol_inode);
 		if (status < 0) {
@@ -427,7 +425,7 @@
 		  osb->vol_layout.root_int_off;
 	for (i = 0; i < OCFS_MAXIMUM_NODES; i++, lock_id += osb->sect_size) {
 		if (free_ext_node[i] != NULL) {
-			status = ocfs_release_lock (osb, lock_id,
+			status = ocfs_release_lock (osb,
 						    OCFS_DLM_EXCLUSIVE_LOCK,
 						    FLAG_FILE_CREATE,
 						    NULL, extnode_inode[i]);
@@ -2713,8 +2711,7 @@
 		ocfs_handle_add_inode(handle, bitmap_inode);
 
 		/* Get the allocation lock here */
-		status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
-					    OCFS_DLM_EXCLUSIVE_LOCK, 0, 
+		status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK, 0, 
 					    &bh, bitmap_inode);
 		if (status < 0) {
 			if (status != -EINTR)
@@ -2869,7 +2866,6 @@
 	int startbh, numblocks;
 	__u64 fileSize = 0;
 	__u64 offset = 0;
-	__u64 lockId = 0;
 	__u64 numBytes = 0;
 	__u64 allocSize = 0;
 	__u64 prevFileSize = 0;
@@ -2926,14 +2922,7 @@
 		BUG();
 	}
 
-	/* Get a lock on the file */
-	lockId = (bm_file * osb->sect_size) + osb->vol_layout.root_int_off;
-	if (lockId != GET_INODE_FEOFF(inode)) {
-		LOG_TRACE_ARGS("lockId = %llu, offset = %llu\n", lockId, 
-			       GET_INODE_FEOFF(inode));
-		BUG();
-	}
-	status = ocfs_acquire_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 			     FLAG_FILE_CREATE, &bh, inode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
@@ -3549,8 +3538,7 @@
 		ocfs_handle_add_inode(handle, main_bm_inode);
 
 		/* Get the allocation lock here */
-		status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
-					    OCFS_DLM_EXCLUSIVE_LOCK, 0, 
+		status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK, 0, 
 					    &main_bm_bh, 
 					    main_bm_inode);
 		if (status < 0) {

Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/dir.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -177,14 +177,13 @@
 	int lock_acq = 0;
 	struct buffer_head *bh = NULL;
 	__u32 lock_type = OCFS_DLM_ENABLE_CACHE_LOCK;
-	__u64 parent_off = GET_INODE_FEOFF(inode);
 
 	LOG_ENTRY_ARGS ("(osb=%p, parent=%llu, name='%*s', fe_off=%p, inode=%p)\n",
-			osb, parent_off, namelen, name, fe_off, inode);
+			osb, GET_INODE_FEOFF(inode), namelen, name, fe_off, inode);
 
 	if (take_lock) {
 		/* Get a lock on the directory... */
-		status = ocfs_acquire_lock (osb, parent_off, lock_type, FLAG_DIR|FLAG_READDIR, 
+		status = ocfs_acquire_lock (osb, lock_type, FLAG_DIR|FLAG_READDIR, 
 					    &bh, inode);
 		if (status < 0) {
 			/* Volume should be disabled in this case */
@@ -207,7 +206,7 @@
 
 	if (take_lock && lock_acq)
 	{
-		tmpstat = ocfs_release_lock (osb, parent_off, lock_type,
+		tmpstat = ocfs_release_lock (osb, lock_type,
 					     FLAG_DIR|FLAG_READDIR, bh, inode);
 		if (tmpstat < 0) {
 			LOG_ERROR_STATUS (tmpstat);

Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/dlm.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -721,7 +721,7 @@
  * ocfs_acquire_lock()
  * inode is definitely non NULL
  */
-int ocfs_acquire_lock (ocfs_super * osb, __u64 lock_id, __u32 lock_type,
+int ocfs_acquire_lock (ocfs_super * osb, __u32 lock_type,
 		   __u32 flags, struct buffer_head **bh, struct inode *inode)
 {
 	int status = -EFAIL;
@@ -735,14 +735,17 @@
 	int disk_vote = 0;
 	int no_owner = 0, owner_dead = 0, wait_on_recovery = 0;
 	__u32 extra_lock_flags = 0;
+	__u64 lock_id;
 
-	LOG_ENTRY_ARGS ("(0x%p, %llu, %u, %u, 0x%p)\n",
-			osb, lock_id, lock_type, flags, bh);
+	LOG_ENTRY_ARGS ("(0x%p, %u, %u, 0x%p)\n",
+			osb, lock_type, flags, bh);
 	
 	OCFS_ASSERT(lock_type != OCFS_DLM_NO_LOCK);
 	OCFS_ASSERT(inode);
-	OCFS_ASSERT(GET_INODE_FEOFF(inode) == lock_id);
 
+	lock_id = GET_INODE_FEOFF(inode);
+	LOG_TRACE_ARGS("lock_id = %llu\n", lock_id);
+
 	if (bh != NULL)
 		b = bh;
 	else
@@ -1115,17 +1118,21 @@
  * ocfs_release_lock()
  * inode is definitely non NULL
  */
-int ocfs_release_lock (ocfs_super * osb, __u64 lock_id, __u32 lock_type, __u32 flags, struct buffer_head *bh, struct inode *inode)
+int ocfs_release_lock (ocfs_super * osb, __u32 lock_type, __u32 flags, struct buffer_head *bh, struct inode *inode)
 {
 	int status = 0;
 	int tries = 0;
 	ocfs_lock_res *lockres = GET_INODE_LOCKRES(inode);
+	__u64 lock_id;
 
-	LOG_ENTRY_ARGS ("(0x%p, %llu, %u, %u, 0x%p)\n",
-			osb, lock_id, lock_type, flags, lockres);
+	LOG_ENTRY_ARGS ("(0x%p, %u, %u, 0x%p)\n",
+			osb, lock_type, flags, lockres);
 
 	OCFS_ASSERT(inode);
 
+	lock_id = GET_INODE_FEOFF(inode);
+	LOG_TRACE_ARGS("lock_id = %llu", lock_id);
+
 	flags |= FLAG_RELEASE_LOCK;
 
 again:

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/file.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -568,7 +568,6 @@
 	int tmpstat;
 	ocfs_file_entry *fileEntry = NULL;
 	int have_disk_lock = 0;
-	__u64 lockId = 0;
 	__u32 lockFlags = 0, locktype = 0;
 	struct buffer_head *bh = NULL;
 	ocfs_journal_handle *handle = NULL;
@@ -598,7 +597,6 @@
 		locktype = OCFS_DLM_EXCLUSIVE_LOCK;
 
 	/* now we always take an UPDATE lock */
-	lockId = fileEntry->this_sector;
 	lockFlags = FLAG_FILE_UPDATE;
 	OCFS_BH_PUT_DATA(bh);
 
@@ -612,7 +610,7 @@
 	ocfs_handle_set_checkpoint(handle, 0);
 	ocfs_handle_set_sync(handle, 0);
 
-	status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags,
+	status = ocfs_acquire_lock (osb, locktype, lockFlags,
 				    &bh, inode);
 	if (status < 0) {
 		if (status != -EINTR)
@@ -661,7 +659,7 @@
 		}
 	}
 	if (have_disk_lock) {
-		tmpstat = ocfs_release_lock (osb, lockId, locktype,
+		tmpstat = ocfs_release_lock (osb, locktype,
 					     lockFlags, bh, inode);
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);
@@ -929,7 +927,6 @@
 {
 	int status = 0, tmpstat;
 	ocfs_file_entry *fe = NULL;
-	__u64 lockId = 0;
 	__u32 lockFlags = 0, locktype = 0;
 	int have_disk_lock = 0;
 	__u64 new_alloc_size;
@@ -966,7 +963,6 @@
 		goto leave;
 	}
 
-	lockId = fe->this_sector;
 	lockFlags = FLAG_FILE_TRUNCATE;
 
 	if ((DISK_LOCK_FILE_LOCK (fe) == OCFS_DLM_ENABLE_CACHE_LOCK)
@@ -978,7 +974,7 @@
 	OCFS_BH_PUT_DATA(bh);
 
 
-	status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags, 
+	status = ocfs_acquire_lock (osb, locktype, lockFlags, 
 				    &bh, inode);
 	if (status < 0) {
 		if (status != -EINTR)
@@ -1051,7 +1047,7 @@
 	if (have_disk_lock) {
 		lockFlags |= FLAG_FILE_UPDATE_OIN;
 
-		tmpstat = ocfs_release_lock (osb, lockId, locktype,
+		tmpstat = ocfs_release_lock (osb, locktype,
 					     lockFlags, bh, inode);
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);
@@ -1082,7 +1078,6 @@
 	__u32 size;
 	__u64 bitmapOffset = 0;
 	__u64 numClustersAlloc = 0;
-	__u64 lockId = 0;
 	__u32 lockFlags = 0;
 	__u32 locktype = OCFS_DLM_ENABLE_CACHE_LOCK;
 	int have_disk_lock = 0;
@@ -1142,14 +1137,13 @@
 		fileEntry = OCFS_BH_GET_DATA_READ(bh);
 
 		/* now we always take an EXTEND lock */
-		lockId = fileEntry->this_sector;
 		lockFlags = FLAG_FILE_EXTEND;
 
 		OCFS_BH_PUT_DATA(bh);
 		brelse(bh);
 		bh = NULL;
 	
-		status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags, &bh, inode);
+		status = ocfs_acquire_lock (osb, locktype, lockFlags, &bh, inode);
 		if (status < 0) {
 			if (status != -EINTR)
 				LOG_ERROR_STATUS (status);
@@ -1297,7 +1291,7 @@
 	if (have_disk_lock) {
 		lockFlags |= FLAG_FILE_UPDATE_OIN;
 
-		tmpstat = ocfs_release_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
+		tmpstat = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 					     lockFlags, bh, inode);
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);

Modified: trunk/src/inc/proto.h
===================================================================
--- trunk/src/inc/proto.h	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/inc/proto.h	2004-06-11 21:43:33 UTC (rev 1056)
@@ -111,14 +111,14 @@
 int new_lock_function(ocfs_super *osb, __u32 requested_lock,
 		      __u32 flags, struct buffer_head *bh,
 		      int *disk_vote, struct inode *inode);
-int ocfs_acquire_lock(ocfs_super *osb, __u64 lock_id, __u32 lock_type,
+int ocfs_acquire_lock(ocfs_super *osb, __u32 lock_type,
 		      __u32 flags, struct buffer_head **bh,
 		      struct inode *inode);
 int ocfs_break_cache_lock_zap_buffers(ocfs_super *osb,
 				      struct inode *inode);
 void ocfs_compute_dlm_stats(int status, int vote_status,
 			    ocfs_dlm_stats *stats);
-int ocfs_release_lock(ocfs_super *osb, __u64 lock_id, __u32 lock_type,
+int ocfs_release_lock(ocfs_super *osb, __u32 lock_type,
 		      __u32 flags, struct buffer_head *bh,
 		      struct inode *inode);
 int ocfs_update_disk_lock(ocfs_super *osb, __u32 flags,

Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/inode.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -703,8 +703,7 @@
 
 	ocfs_handle_add_inode(handle, orphan_dir_inode);
 
-	status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(orphan_dir_inode), 
-				   OCFS_DLM_EXCLUSIVE_LOCK, 
+	status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 				   FLAG_FILE_CREATE | FLAG_DIR,
 				   &orphan_dir_bh, orphan_dir_inode);
 	if (status < 0) {
@@ -721,8 +720,7 @@
 	down(&OCFS_I(inode)->ip_io_sem);
 	if (S_ISDIR(inode->i_mode))
 		lock_flags |= FLAG_DIR;
-	status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(inode),
-				   OCFS_DLM_EXCLUSIVE_LOCK, lock_flags, 
+	status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, lock_flags, 
 				   &fe_bh, inode);
 	up(&OCFS_I(inode)->ip_io_sem);
 	if (status < 0) {
@@ -791,9 +789,8 @@
 
 	if (release_disk_lock) {
 		down(&OCFS_I(inode)->ip_io_sem);
-		status = ocfs_release_lock(osb, GET_INODE_FEOFF(inode),
-					   OCFS_DLM_EXCLUSIVE_LOCK, lock_flags,
-					   fe_bh, inode);
+		status = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
+					   lock_flags, fe_bh, inode);
 		up(&OCFS_I(inode)->ip_io_sem);
 		if (status < 0)
 			LOG_ERROR_STATUS(status);

Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/journal.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -262,7 +262,6 @@
 		if (!INODE_DELETED(lock->inode)) {
 
 			tmpstat = ocfs_release_lock(osb, 
-						    GET_INODE_FEOFF(lock->inode),
 						    lock->type, 
 						    lock->flags, 
 						    (action == TRANS_ABORT
@@ -889,7 +888,7 @@
 	SET_INODE_JOURNAL(inode);
 
 	/* TODO: Use another type of lock. */
-	status = ocfs_acquire_lock (osb, lock_id, OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				    FLAG_FILE_CREATE, &bh, inode);
 	if (status < 0) {
 		up(&OCFS_I(inode)->ip_io_sem);
@@ -1050,8 +1049,7 @@
 
 	down(&OCFS_I(inode)->ip_io_sem);
 	/* unlock our journal */
-	status = ocfs_release_lock (osb, journal->lock_id,
-				    OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				    FLAG_FILE_CREATE, 
 				    journal->lockbh, inode);
 	up(&OCFS_I(inode)->ip_io_sem);
@@ -1346,8 +1344,7 @@
 	if (osb->node_num == node_num)
 		BUG();
 
-	status = ocfs_acquire_lock (osb, lock_id, 
-				    OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				    FLAG_FILE_CREATE|FLAG_FILE_RECOVERY, 
 				    &bh, inode);
 
@@ -1454,8 +1451,7 @@
 	if (got_lock) {
 		down(&OCFS_I(inode)->ip_io_sem);
 
-		status = ocfs_release_lock(osb, lock_id, 
-					   OCFS_DLM_EXCLUSIVE_LOCK, 
+		status = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 					   FLAG_FILE_CREATE|FLAG_FILE_RECOVERY,
 					   bh, inode);
 		up(&OCFS_I(inode)->ip_io_sem);

Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c	2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/namei.c	2004-06-11 21:43:33 UTC (rev 1056)
@@ -54,10 +54,10 @@
 			     ocfs_journal_handle *handle,
 			     struct inode *inode);
 static int ocfs_double_lock(ocfs_super *osb, ocfs_journal_handle *handle,
-			    __u64 id1, __u32 type1, __u32 flags1, 
+			    __u32 type1, __u32 flags1, 
 			    struct buffer_head **bh1,
 		     	    struct inode *inode1,
-			    __u64 id2, __u32 type2, __u32 flags2, 
+			    __u32 type2, __u32 flags2, 
 			    struct buffer_head **bh2,
 		     	    struct inode *inode2);
 
@@ -143,7 +143,7 @@
 {
 	int status = 0;
 	struct buffer_head *parent_fe_bh = NULL;
-	__u64 parent_off, file_off;
+	__u64 file_off;
 	ocfs_journal_handle *handle = NULL;
 	ocfs_super *osb;
 	ocfs_file_entry *fe = NULL;
@@ -175,9 +175,6 @@
 		goto leave;
 	}
 
-	/* need the offset of our parent directory to lock it */
-	parent_off = GET_INODE_FEOFF(dir);
-
 	/* start the transaction */
 	handle = ocfs_start_trans(osb, OCFS_MKNOD_CREDITS);
 	if (handle == NULL) {
@@ -189,8 +186,7 @@
 	ocfs_handle_set_sync(handle, 0);
 
 	/* lock the parent directory */
-	status = ocfs_acquire_lock (osb, parent_off, 
-				    OCFS_DLM_ENABLE_CACHE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 				    FLAG_FILE_CREATE | FLAG_DIR, 
 				    &parent_fe_bh, dir);
 	if (status < 0) {
@@ -251,7 +247,7 @@
 		strcpy (de->name, ".");
 		ocfs_set_de_type(dir->i_sb, de, S_IFDIR);
 		de = (struct ocfs2_dir_entry *) ((char *) de + le16_to_cpu(de->rec_len));
-		de->inode = cpu_to_le64(parent_off);
+		de->inode = cpu_to_le64(GET_INODE_FEOFF(dir));
 		de->rec_len = cpu_to_le16(inode->i_sb->s_blocksize-OCFS_DIR_REC_LEN(1));
 		de->name_len = 2;
 		strcpy (de->name, "..");
@@ -583,7 +579,7 @@
 
 	/* lock parent directory, yes we use FLAG_FILE_CREATE even
 	 * though we're deleting ;) */
-	status = ocfs_acquire_lock(osb, parent_off, OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				   FLAG_FILE_CREATE|FLAG_DIR, NULL, 
 				   parentInode);
 	if (status < 0) {
@@ -611,7 +607,7 @@
 		goto leave;
 	}
 
-	status = ocfs_acquire_lock (osb, fe_off, OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
 			lockFlags, &fe_bh, inode);
 	if (status < 0) {
 		if (status != -EINTR)
@@ -713,8 +709,7 @@
 	/* need this to alert dentry-owners on other nodes */
 	/* Release the file lock if we acquired it */
 	if (got_file) {
-		tmpstat = ocfs_release_lock(osb, fe_off, 
-					    OCFS_DLM_EXCLUSIVE_LOCK, 
+		tmpstat = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 					    lockFlags, fe_bh, inode);
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS(tmpstat);
@@ -722,8 +717,7 @@
 	}
 
 	if (got_parent) {
-		tmpstat = ocfs_release_lock(osb, parent_off, 
-					    OCFS_DLM_EXCLUSIVE_LOCK,
+		tmpstat = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
 					    FLAG_FILE_CREATE|FLAG_DIR, 
 					    NULL, parentInode);
 		if (tmpstat < 0)
@@ -768,23 +762,26 @@
  * if they have the same id, then the 1st one is the only one locked.
  */
 static int ocfs_double_lock(ocfs_super *osb, ocfs_journal_handle *handle,
-		     __u64 id1, __u32 type1, __u32 flags1, 
+		     __u32 type1, __u32 flags1, 
 		     struct buffer_head **bh1,
 		     struct inode *inode1,
-		     __u64 id2, __u32 type2, __u32 flags2, 
+		     __u32 type2, __u32 flags2, 
 		     struct buffer_head **bh2,
 		     struct inode *inode2)
 {
 	int status = 0;
 	int id2_locked = 0;
-	__u64 tmpid;
+	__u64 tmpid, id1, id2;
 	__u32 tmptype, tmpflags;
 	struct buffer_head **tmpbh;
 	struct inode *tmpinode;
 
-	LOG_ENTRY_ARGS("(lock_id1 = %llu, lock_id2 = %llu)\n", id1, 
-		       id2);
+	LOG_ENTRY_ARGS("(lock_id1 = %llu, lock_id2 = %llu)\n", 
+		       GET_INODE_FEOFF(inode1), GET_INODE_FEOFF(inode2));
 
+	id1 = GET_INODE_FEOFF(inode1);
+	id2 = GET_INODE_FEOFF(inode2);
+
 	if (*bh1)
 		*bh1 = NULL;
 	if (*bh2)
@@ -816,7 +813,7 @@
 			inode1 = tmpinode;
 		}
 		/* lock id2 */
-		status = ocfs_acquire_lock(osb, id2, type2, flags2, bh2, inode2);
+		status = ocfs_acquire_lock(osb, type2, flags2, bh2, inode2);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto bail;
@@ -824,7 +821,7 @@
 		id2_locked = 1;
 	}
 	/* lock id1 */
-	status = ocfs_acquire_lock(osb, id1, type1, flags1, 
+	status = ocfs_acquire_lock(osb, type1, flags1, 
 				   bh1, inode1);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
@@ -834,7 +831,7 @@
 bail:
 	if (status < 0) {
 		if (id2_locked) {
-			status = ocfs_release_lock(osb, id2, type2, flags2, 
+			status = ocfs_release_lock(osb, type2, flags2, 
 						   *bh2, inode2);
 			if (bh2) {
 				brelse(*bh2);
@@ -892,7 +889,7 @@
 	struct buffer_head *newfe_bh = NULL;
 	struct buffer_head *insert_bh = NULL;
 	ocfs_super *osb = NULL;
-	__u64 oldOffset, newDirOff, oldDirOff;
+	__u64 oldfe_lockid;
 	__u64 newfe_lockid = 0;
 	ocfs_journal_handle *handle = NULL;
 	__u32 dir_lock_flags = FLAG_FILE_CREATE | FLAG_DIR;
@@ -916,15 +913,8 @@
 
 	osb = OCFS_SB(old_dir->i_sb);
 
-	/* old parent dir offset */
-	oldDirOff = GET_INODE_FEOFF(old_dir);
+	oldfe_lockid = GET_INODE_FEOFF(old_inode);
 
-	/* old file offset */
-	oldOffset = GET_INODE_FEOFF(old_inode);
-
-	/* new parent dir offset */
-	newDirOff = GET_INODE_FEOFF(new_dir);
-
 	double_down(&OCFS_I(old_dir)->ip_io_sem, &OCFS_I(new_dir)->ip_io_sem);
 	down(&OCFS_I(old_inode)->ip_io_sem);
 
@@ -970,10 +960,10 @@
 
 	/* if old and new are the same, this'll just do one lock. */
 	status = ocfs_double_lock(osb, handle, 
-				  oldDirOff, OCFS_DLM_EXCLUSIVE_LOCK, 
+				  OCFS_DLM_EXCLUSIVE_LOCK, 
 				  dir_lock_flags,
 				  &old_dir_bh, old_dir,
-				  newDirOff, OCFS_DLM_EXCLUSIVE_LOCK, 
+				  OCFS_DLM_EXCLUSIVE_LOCK, 
 				  dir_lock_flags,
 				  &new_dir_bh, new_dir);
 	if (status < 0) {
@@ -997,7 +987,7 @@
 	if (S_ISDIR(old_inode->i_mode))
 		oldfe_flags = FLAG_DIR;
 
-	status = ocfs_acquire_lock(osb, oldOffset, OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				   oldfe_flags, NULL, old_inode);
 	if (status < 0) {
 		LOG_ERROR_STATUS(status);
@@ -1064,8 +1054,7 @@
 
 		if (S_ISDIR(new_inode->i_mode))
 			newfe_flags = FLAG_DIR;
-		status = ocfs_acquire_lock(osb, newfe_lockid, 
-					   OCFS_DLM_EXCLUSIVE_LOCK, 
+		status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 					   newfe_flags, &newfe_bh, 
 					   new_inode);
 		if (status < 0) {
@@ -1149,7 +1138,7 @@
 	} else {
 		/* if the name was not found in new_dir, add it now */
 		status = ocfs_add_entry (handle, new_dentry, old_inode, 
-					 oldOffset, new_dir_bh);
+					 oldfe_lockid, new_dir_bh);
 	}
 	
 
@@ -1222,14 +1211,12 @@
 
 bail:
 	if (got_oldlock) {
-		ocfs_release_lock(osb, oldOffset, 
-				  OCFS_DLM_EXCLUSIVE_LOCK, 
+		ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 				  oldfe_flags, NULL, old_inode);
 	}
 
 	if (got_newlock) {
-		ocfs_release_lock(osb, newfe_lockid, 
-				  OCFS_DLM_EXCLUSIVE_LOCK, 
+		ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, 
 				  newfe_flags, NULL, new_inode);
 	}
 
@@ -1278,7 +1265,7 @@
 {
 	ocfs_super *osb = NULL;
 	struct inode *inode = NULL;
-	__u64 file_off, parent_off;
+	__u64 file_off;
 	__u64 newsize;
 	int status;
 	struct super_block *sb;
@@ -1325,9 +1312,7 @@
 	}
 
 	/* lock the parent directory */
-	parent_off = GET_INODE_FEOFF(dir);
-	status = ocfs_acquire_lock (osb, parent_off, 
-				    OCFS_DLM_ENABLE_CACHE_LOCK,
+	status = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 				    FLAG_FILE_CREATE | FLAG_DIR, 
 				    &parent_fe_bh, dir);
 	if (status < 0) {
@@ -1397,8 +1382,7 @@
 
 	if (got_lock) {
 		int tmpstat;
-		tmpstat = ocfs_release_lock (osb, parent_off, 
-					     OCFS_DLM_ENABLE_CACHE_LOCK,
+		tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 					     FLAG_FILE_CREATE | FLAG_DIR, 
 					     parent_fe_bh, dir);
 		if (tmpstat < 0)
@@ -1815,8 +1799,7 @@
 	ocfs_handle_add_inode(handle, orphan_dir_inode);
 
 	/* disk lock orphan dir here. */
-	status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(orphan_dir_inode),
-				   OCFS_DLM_EXCLUSIVE_LOCK,
+	status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
 				   FLAG_FILE_CREATE | FLAG_DIR,
 				   &orphan_dir_bh, orphan_dir_inode);
 	if (status < 0) {
@@ -1972,8 +1955,7 @@
 	
 	/* lock the parent directory */
 	parent_off = GET_INODE_FEOFF(dir);
-	err = ocfs_acquire_lock (osb, parent_off, 
-				    OCFS_DLM_ENABLE_CACHE_LOCK,
+	err = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 				    FLAG_FILE_CREATE | FLAG_DIR, 
 				    &parent_fe_bh, dir);
 	if (err < 0) {
@@ -1985,8 +1967,7 @@
 
 	/* lock the file entry */
 	fe_off = GET_INODE_FEOFF(inode);
-	err = ocfs_acquire_lock (osb, fe_off, 
-				    OCFS_DLM_ENABLE_CACHE_LOCK,
+	err = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 				    FLAG_FILE_CREATE, 
 				    &bh, inode);
 	if (err < 0) {
@@ -2025,16 +2006,14 @@
 		ocfs_commit_trans(handle);
 
 	if (parent_off) {
-		tmpstat = ocfs_release_lock (osb, parent_off, 
-					     OCFS_DLM_ENABLE_CACHE_LOCK,
+		tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 					     FLAG_FILE_CREATE | FLAG_DIR, 
 					     parent_fe_bh, dir);
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);
 	}
 	if (fe_off) {
-		tmpstat = ocfs_release_lock (osb, fe_off, 
-					     OCFS_DLM_ENABLE_CACHE_LOCK,
+		tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
 					     FLAG_FILE_CREATE, 
 					     bh, inode);
 		if (tmpstat < 0)



More information about the Ocfs2-commits mailing list