[Ocfs2-commits] mfasheh commits r1353 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Aug 13 14:12:34 CDT 2004


Author: mfasheh
Date: 2004-08-13 13:12:32 -0500 (Fri, 13 Aug 2004)
New Revision: 1353

Modified:
   trunk/src/dlm.c
   trunk/src/dlm.h
   trunk/src/file.c
   trunk/src/inode.c
   trunk/src/lockres.c
   trunk/src/namei.c
   trunk/src/nm.c
   trunk/src/ocfs.h
   trunk/src/ocfs2_fs.h
Log:
* get rid of disk locks dl_seq_num, inode privates ip_chng_seq_num and
  lockres' last_upd_seq_num fields - they were all essentially unused.
  This gives us one big advantage, other than less bloat -
  ocfs2_disk_lock is now really small -- just a master node num and a
  lock type.

* While I was there, I cleaned up ocfs_update_disk_lock(). It does the
  same thing as before, it's just much smaller as a bunch of the code
  was never triggered.



Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/dlm.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -62,8 +62,8 @@
 static int ocfs_reset_voting (ocfs_super * osb);
 static int ocfs_get_vote_on_disk (ocfs_super * osb, __u64 lock_id, __u32 lock_type, __u32 flags, ocfs_node_map * got_vote_map, ocfs_node_map * vote_map, __u64 lock_seq_num);
 static int ocfs_disk_release_lock (ocfs_super * osb, __u64 lock_id, __u32 lock_type, __u32 flags, struct inode *inode, __u32 num_ident);
+static int ocfs_update_disk_lock (ocfs_super * osb, __u32 flags, struct buffer_head **bh, struct inode *inode);
 
-
 static void ocfs_set_publish_vote_map(ocfs_super *osb, ocfs_publish *publish, ocfs_node_map *vote_map)
 {
 	ocfs_node_map_set_to_disk(publish->vote_map, vote_map);
@@ -389,7 +389,7 @@
  * ocfs_update_disk_lock()
  * inode is definitely non NULL
  */
-int ocfs_update_disk_lock (ocfs_super * osb, __u32 flags, struct buffer_head **bh, struct inode *inode, ocfs_journal_handle *handle)
+static int ocfs_update_disk_lock (ocfs_super * osb, __u32 flags, struct buffer_head **bh, struct inode *inode)
 {
 	int status = 0;
 	ocfs2_dinode *fe = NULL;
@@ -406,51 +406,22 @@
 		goto finally;
 	}
 
-	if (handle) {
-		status = ocfs_journal_access(handle, *bh, OCFS_JOURNAL_ACCESS_WRITE);
-		if (status < 0) {
-			LOG_ERROR_STATUS (status);
-			goto finally;
-		}
-	}
-
 	fe = (ocfs2_dinode *) (*bh)->b_data;
 
 	if (flags & DLOCK_FLAG_MASTER && 
 	    DISK_LOCK(fe)->dl_master != lockres->master_node_num) {
-		if (!changed) {
-			fe = (ocfs2_dinode *) (*bh)->b_data;
-		}
 		changed = 1;
 		DISK_LOCK(fe)->dl_master = lockres->master_node_num;
 	}
 
 	if (flags & DLOCK_FLAG_LOCK &&
 	    DISK_LOCK(fe)->dl_level != lockres->lock_type) {
-		if (!changed) {
-			fe = (ocfs2_dinode *) (*bh)->b_data;
-		}
 		changed = 1;
 		DISK_LOCK(fe)->dl_level = lockres->lock_type;
 	}
 
-	if (flags & DLOCK_FLAG_SEQ_NUM &&
-	    DISK_LOCK(fe)->dl_seq_num != lockres->last_upd_seq_num) {
-		if (!changed) {
-			fe = (ocfs2_dinode *) (*bh)->b_data;
-		}
-		changed = 1;
-		DISK_LOCK(fe)->dl_seq_num = lockres->last_upd_seq_num;
-	}
-
 	if (changed) {
-		if (handle) {
-			status = ocfs_journal_dirty(handle, *bh);
-			lockres->lock_holders++;
-			ocfs_handle_add_lock(handle, lockres->lock_type, 0, 
-					     inode);
-		} else
-			status = ocfs_write_bh (osb, *bh, 0, inode);
+		status = ocfs_write_bh (osb, *bh, 0, inode);
 		if (status < 0) 
 			LOG_ERROR_STATUS (status);
 	}
@@ -1074,7 +1045,7 @@
 
 	/* update the disk lock */
 	if (need_lock_write) {
-		status = ocfs_update_disk_lock (osb, lock_write_flags, &bh, inode, NULL);
+		status = ocfs_update_disk_lock (osb, lock_write_flags, &bh, inode);
 		if (status < 0)
 			LOG_ERROR_STATUS (status);
 	}

Modified: trunk/src/dlm.h
===================================================================
--- trunk/src/dlm.h	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/dlm.h	2004-08-13 18:12:32 UTC (rev 1353)
@@ -41,9 +41,6 @@
 	ocfs_release_lock_full(osb, lock_type, flags, inode, 1)
 int ocfs_release_lock_full(ocfs_super *osb, __u32 lock_type,
 			   __u32 flags, struct inode *inode, __u32 num_ident);
-int ocfs_update_disk_lock(ocfs_super *osb, __u32 flags,
-			  struct buffer_head **bh, struct inode *inode,
-			  ocfs_journal_handle *handle);
 int ocfs_notify_on_open(ocfs_super *osb, struct inode *inode);
 void ocfs_get_publish_vote_map(ocfs_super *osb, ocfs_publish *publish,
 			       ocfs_node_map *vote_map);

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/file.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -531,7 +531,6 @@
 
 	fileEntry->i_mtime = OCFS_CURRENT_TIME;
 
-	DISK_LOCK(fileEntry)->dl_seq_num = 0;
 	ocfs_fe_set_attributes(fileEntry, attr);
 
 	status = ocfs_journal_dirty(handle, bh);
@@ -932,7 +931,6 @@
 		goto leave;
 	}
 
-	DISK_LOCK(fe)->dl_seq_num = 0;
 	fe->i_mtime = OCFS_CURRENT_TIME;
 
 	status = ocfs_journal_dirty(handle, bh);
@@ -1224,8 +1222,6 @@
 
 	/* no need to do OCFS_SECTOR_ALIGN once the allocation size is
 	 * correct. */
-	DISK_LOCK(fe)->dl_seq_num = 0;
-
 no_alloc:
 	/* Update tha file size and add the new one to old one. */
 	fe->i_size = file_size;

Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/inode.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -412,7 +412,6 @@
 	OCFS_I(inode)->ip_alloc_size =
 		(u64)fe->i_clusters << osb->s_clustersize_bits;
 	OCFS_I(inode)->ip_inode = inode;
-	OCFS_I(inode)->ip_chng_seq_num = DISK_LOCK(fe)->dl_seq_num;
 	OCFS_I(inode)->u.fe_private = fe->id1.i_pad1;
 
 	if (create_ino)
@@ -468,7 +467,7 @@
 	}
 
 	status = 0;
- bail:
+bail:
 	LOG_EXIT_STATUS (status);
 	return status;
 }				/* ocfs_populate_inode */
@@ -2152,7 +2151,6 @@
 	if ((OCFS_I(inode)->ip_alloc_size !=
 	     (__s64)((u64)fe->i_clusters << osb->s_clustersize_bits)) ||
 	    (inode->i_size != (__s64) fe->i_size) ||
-	    (OCFS_I(inode)->ip_chng_seq_num != DISK_LOCK(fe)->dl_seq_num) ||
 	    inode->i_uid != fe->i_uid ||
 	    inode->i_gid != fe->i_gid || 
 	    inode->i_mode != fe->i_mode ||
@@ -2185,7 +2183,6 @@
 			       inode->i_nlink, fe->i_links_count,
 			       OCFS_I(inode)->ip_blkno);
 		inode->i_nlink = fe->i_links_count;
-		OCFS_I(inode)->ip_chng_seq_num = DISK_LOCK(fe)->dl_seq_num;
 		inode->i_blocks = (inode->i_size + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
 		inode->i_uid = fe->i_uid;
 		inode->i_gid = fe->i_gid;

Modified: trunk/src/lockres.c
===================================================================
--- trunk/src/lockres.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/lockres.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -203,7 +203,6 @@
 
 	lockres->lock_type = OCFS_LKM_NLMODE;
 	lockres->master_node_num = OCFS_INVALID_NODE_NUM;
-	lockres->last_upd_seq_num = 0;
 	lockres->lock_state = 0;
 
 	init_MUTEX(&lockres->lock_mutex);

Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/namei.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -445,7 +445,6 @@
 	fe->i_last_eb_blk = 0;
 	strcpy (fe->i_signature, OCFS2_INODE_SIGNATURE);
 	fe->i_flags |= OCFS2_VALID_FL;
-	DISK_LOCK(fe)->dl_seq_num = 0;
 	DISK_LOCK(fe)->dl_master = osb->node_num;
 	DISK_LOCK(fe)->dl_level = OCFS_LKM_EXMODE;
 	fe->i_atime = fe->i_ctime = fe->i_mtime = OCFS_CURRENT_TIME;

Modified: trunk/src/nm.c
===================================================================
--- trunk/src/nm.c	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/nm.c	2004-08-13 18:12:32 UTC (rev 1353)
@@ -971,7 +971,6 @@
 #endif
 				vote_response = FLAG_VOTE_OIN_ALREADY_INUSE;
 				up(&(OCFS_I(inode)->ip_sem));
-				lockres->last_upd_seq_num = seq_num;
 				break;
 			}
 			up(&(OCFS_I(inode)->ip_sem));
@@ -984,7 +983,6 @@
 				printk("process_vote: extends pending\n");
 #endif
 				vote_response = FLAG_VOTE_OIN_ALREADY_INUSE;
-				lockres->last_upd_seq_num = seq_num;
 				break;
 			}
 			spin_unlock(&oin_num_ext_lock);

Modified: trunk/src/ocfs.h
===================================================================
--- trunk/src/ocfs.h	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/ocfs.h	2004-08-13 18:12:32 UTC (rev 1353)
@@ -381,9 +381,6 @@
 	unsigned long map[BITS_TO_LONGS(OCFS_NODE_MAP_MAX_NODES)];
 } ocfs_node_map;
 
-
-
-/* XXX: fields that can go if we move this to the inode private */
 struct _ocfs_lock_res
 {
 	__s16 master_node_num;	/* Master Node */
@@ -394,8 +391,6 @@
 	struct semaphore lock_mutex;
 	__s16 readonly_node;
 	ocfs_node_map readonly_map;
-	//ocfs_node_map oin_openmap;
-	__u64 last_upd_seq_num;
 };
 
 struct _ocfs_journal_handle;
@@ -412,7 +407,6 @@
 	/* These fields are protected by ip_sem */
 	struct semaphore  ip_sem;
 	__u32             ip_open_cnt;
-	__u64             ip_chng_seq_num;
 	ocfs_extent_map   ip_ext_map;
 	__s64             ip_alloc_size;
 	__s64		  ip_mmu_private;

Modified: trunk/src/ocfs2_fs.h
===================================================================
--- trunk/src/ocfs2_fs.h	2004-08-12 20:20:28 UTC (rev 1352)
+++ trunk/src/ocfs2_fs.h	2004-08-13 18:12:32 UTC (rev 1353)
@@ -276,8 +276,8 @@
 	__u16 dl_reserved1;
 	__u8 dl_level;		/* Lock level */
 	__u8 dl_reserved2[3];	/* Pad to u64 */
-	__u64 dl_seq_num;	/* Lock transaction seqnum */
-/*10*/	__u32 dl_reserved3[8];  /* was dl_node_map */
+	__u64 dl_reserved3;	/* was dl_seq_num */
+/*10*/	__u32 dl_reserved4[8];  /* was dl_node_map */
 /*30*/
 } ocfs2_disk_lock;
 



More information about the Ocfs2-commits mailing list