[Ocfs2-commits] jlbec commits r1586 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Oct 22 16:28:52 CDT 2004


Author: jlbec
Date: 2004-10-22 16:28:50 -0500 (Fri, 22 Oct 2004)
New Revision: 1586

Modified:
   trunk/src/alloc.c
   trunk/src/aops.c
   trunk/src/dir.c
   trunk/src/extent_map.c
   trunk/src/file.c
   trunk/src/inode.c
   trunk/src/journal.c
   trunk/src/localalloc.c
   trunk/src/namei.c
   trunk/src/ocfs.h
   trunk/src/ocfs2.h
   trunk/src/proc.c
   trunk/src/suballoc.c
   trunk/src/super.c
Log:

o Change ip_alloc_size to ip_clusters.
o Add ocfs2_clusters_to_bytes() to remove many ugly shifts/casts.



Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/alloc.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -1344,8 +1344,7 @@
 	el = &(fe->id2.i_list);
 
 	spin_lock(&OCFS_I(inode)->ip_lock);
-	OCFS_I(inode)->ip_alloc_size =
-		(u64)(fe->i_clusters - clusters_to_del) << osb->s_clustersize_bits;
+	OCFS_I(inode)->ip_clusters = fe->i_clusters - clusters_to_del;
 	spin_unlock(&OCFS_I(inode)->ip_lock);
 	fe->i_clusters -= clusters_to_del;
 	fe->i_mtime = OCFS_CURRENT_TIME;

Modified: trunk/src/aops.c
===================================================================
--- trunk/src/aops.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/aops.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -153,7 +153,9 @@
 
 	/* this can happen if another node truncs after our extend! */
 	spin_lock(&OCFS_I(inode)->ip_lock);
-	if (vbo >= OCFS_I(inode)->ip_alloc_size) {
+	if (iblock >=
+	    ocfs2_clusters_to_blocks(inode->i_sb,
+				     OCFS_I(inode)->ip_clusters)) {
 		spin_unlock(&OCFS_I(inode)->ip_lock);
 		err = -EIO;
 		goto bail;

Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/dir.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -352,7 +352,7 @@
 	u64 p_blkno;
 
 	spin_lock(&OCFS_I(dir)->ip_lock);
-	extend = (dir->i_size == OCFS_I(dir)->ip_alloc_size);
+	extend = (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters));
 	spin_unlock(&OCFS_I(dir)->ip_lock);
 
 	if (extend) {
@@ -414,7 +414,7 @@
 
 	/* dir->i_size is always block aligned. */
 	spin_lock(&OCFS_I(dir)->ip_lock);
-	if (dir->i_size == OCFS_I(dir)->ip_alloc_size) {
+	if (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters)) {
 		spin_unlock(&OCFS_I(dir)->ip_lock);
 		num_free_extents = ocfs_num_free_extents(osb, dir, fe);
 		if (num_free_extents < 0) {

Modified: trunk/src/extent_map.c
===================================================================
--- trunk/src/extent_map.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/extent_map.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -170,7 +170,7 @@
 
 			ret = -EBADR;
 			if ((rec->e_cpos + rec->e_clusters) >
-			    (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+			    OCFS_I(inode)->ip_clusters)
 				goto out_free;
 
 			if ((rec->e_cpos + rec->e_clusters) <= cpos) {
@@ -555,15 +555,14 @@
 	OCFS_ASSERT(new_clusters);
 	OCFS_ASSERT(rec->e_clusters >= new_clusters);
 
-	if (em->em_clusters <
-	    (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits)) {
+	if (em->em_clusters < OCFS_I(inode)->ip_clusters) {
 		/*
 		 * Size changed underneath us on disk.  Drop any
 		 * straddling records and update our idea of
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_alloc_size >>  OCFS_SB(inode->i_sb)->s_clustersize_bits;
+		em->em_clusters = OCFS_I(inode)->ip_clusters;
 	}
 
 	OCFS_ASSERT((rec->e_cpos + rec->e_clusters) ==
@@ -627,8 +626,7 @@
 
 	*rec = NULL;
 
-	if (cpos >=
-	    (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+	if (cpos >= OCFS_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if (cpos >= em->em_clusters) {
@@ -638,7 +636,7 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_alloc_size >>  OCFS_SB(inode->i_sb)->s_clustersize_bits;
+		em->em_clusters = OCFS_I(inode)->ip_clusters ;
 	}
 
 	ent = ocfs2_extent_map_lookup(&OCFS_I(inode)->ip_map, cpos, 1,
@@ -665,8 +663,7 @@
 
 	*p_cpos = ccount = 0;
 
-	if ((v_cpos + count) >
-	    (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+	if ((v_cpos + count) > OCFS_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if ((v_cpos + count) > em->em_clusters) {
@@ -676,7 +673,7 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_alloc_size >>  OCFS_SB(inode->i_sb)->s_clustersize_bits;
+		em->em_clusters = OCFS_I(inode)->ip_clusters;
 	}
 
 
@@ -723,8 +720,7 @@
 	cpos = ocfs2_blocks_to_clusters(inode->i_sb, v_blkno);
 	clusters = ocfs2_blocks_to_clusters(inode->i_sb,
 					    (u64)count + bpc - 1);
-	if ((cpos + clusters) >
-	    (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+	if ((cpos + clusters) > OCFS_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if ((cpos + clusters) > em->em_clusters) {
@@ -734,7 +730,7 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_alloc_size >>  OCFS_SB(inode->i_sb)->s_clustersize_bits;
+		em->em_clusters = OCFS_I(inode)->ip_clusters;
 	}
 
 	ret = ocfs2_extent_map_lookup_read(inode, cpos, clusters, &ent);
@@ -887,7 +883,7 @@
  *
  * If you want to also clip the last extent by some number of clusters,
  * you need to call ocfs2_extent_map_trunc().
- * This code does not check or modify ip_alloc_size.
+ * This code does not check or modify ip_clusters.
  */
 int ocfs2_extent_map_drop(struct inode *inode, u32 new_clusters)
 {
@@ -916,7 +912,7 @@
 /*
  * Remove all entries past new_clusters and also clip any extent
  * straddling new_clusters, if there is one.  This does not check
- * or modify ip_alloc_size.
+ * or modify ip_clusters
  */
 int ocfs2_extent_map_trunc(struct inode *inode, u32 new_clusters)
 {

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/file.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -520,7 +520,10 @@
 
 		LOG_TRACE_ARGS
 		    ("Writing at EOF, will need more allocation: have=%llu, "
-		     "need=%llu\n", OCFS_I(inode)->ip_alloc_size, newsize);
+		     "need=%llu\n",
+		     ocfs2_clusters_to_bytes(inode->i_sb,
+					     OCFS_I(inode)->ip_clusters),
+		     newsize);
 		status = ocfs_extend_file(osb, inode, newsize);
 		if (status < 0) {
 			if (status != -EINTR && status != -ENOSPC) {
@@ -1008,8 +1011,7 @@
 
 	fe->i_clusters += num_bits;
 	spin_lock(&OCFS_I(inode)->ip_lock);
-	OCFS_I(inode)->ip_alloc_size =
-		(u64)fe->i_clusters << osb->s_clustersize_bits;
+	OCFS_I(inode)->ip_clusters = fe->i_clusters;
 	spin_unlock(&OCFS_I(inode)->ip_lock);
 
 	status = ocfs_journal_dirty(handle, fe_bh);
@@ -1197,7 +1199,7 @@
 
 	if (status == -EAGAIN 
 	    && (new_i_size > 
-		(fe->i_clusters << osb->s_clustersize_bits))) {
+		ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters))) {
 
 		if (why == RESTART_META) {
 			LOG_TRACE_ARGS("restarting function.\n");
@@ -1207,7 +1209,9 @@
 
 			/* update i_size in case we crash after the
 			 * extend_trans */
-			fe->i_size = (u64) (fe->i_clusters << osb->s_clustersize_bits);
+			fe->i_size =
+				ocfs2_clusters_to_bytes(osb->sb,
+							fe->i_clusters);
 			fe->i_mtime = OCFS_CURRENT_TIME;
 
 			status = ocfs_journal_dirty(handle, bh);
@@ -1240,16 +1244,16 @@
 no_alloc:
 	/* this may not be the end of our allocation so only update
 	 * i_size to what's appropriate. */
-	if (new_i_size > (fe->i_clusters << osb->s_clustersize_bits))
-		fe->i_size = fe->i_clusters << osb->s_clustersize_bits;
+	if (new_i_size > ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters))
+		fe->i_size = ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters);
 	else
 		fe->i_size = new_i_size;
 #warning "is there a reason why we don't update i_blocks here?"
 	LOG_TRACE_ARGS("fe: i_clusters = %u, i_size=%llu\n", 
 		       fe->i_clusters, fe->i_size);
 
-	LOG_TRACE_ARGS("inode: ip_alloc_size=%llu, i_size=%llu\n",
-		       OCFS_I(inode)->ip_alloc_size, inode->i_size);
+	LOG_TRACE_ARGS("inode: ip_clusters=%u, i_size=%llu\n",
+		       OCFS_I(inode)->ip_clusters, inode->i_size);
 
 	fe->i_mtime = OCFS_CURRENT_TIME;
 

Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/inode.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -323,7 +323,7 @@
 	INIT_LIST_HEAD(&i->ip_j_inode);
 
 	/* These should be set in read_inode2. */
-	i->ip_alloc_size = 0ULL;
+	i->ip_clusters = 0;
 	i->ip_blkno = 0ULL;
 	i->ip_mmu_private = 0ULL;
 
@@ -383,8 +383,7 @@
 
 	OCFS_I(inode)->ip_blkno = fe->i_blkno;
 
-	OCFS_I(inode)->ip_alloc_size =
-		(u64)fe->i_clusters << osb->s_clustersize_bits;
+	OCFS_I(inode)->ip_clusters = fe->i_clusters;
 	OCFS_I(inode)->ip_inode = inode;
 	OCFS_I(inode)->u.fe_private = fe->id1.i_pad1;
 
@@ -971,7 +970,6 @@
 {
 	int status;
 	ocfs2_dinode *fe = (ocfs2_dinode *) bh->b_data;
-	ocfs_super *osb = OCFS_SB(inode->i_sb);
 
 #warning "need to check the casts and the endian-ness in this function"
 	LOG_ENTRY_ARGS("(inode %llu)\n", OCFS_I(inode)->ip_blkno);
@@ -991,8 +989,7 @@
 			cpu_to_le32(OCFS_I(inode)->u.ip_bitinfo.total_bits);
 	}
 
-	fe->i_clusters = 
-		(u32)OCFS_I(inode)->ip_alloc_size >> osb->s_clustersize_bits;
+	fe->i_clusters = OCFS_I(inode)->ip_clusters;
 	spin_unlock(&OCFS_I(inode)->ip_lock);
 
 	fe->i_size = (u64)inode->i_size;
@@ -1064,20 +1061,18 @@
 		goto bail;
 	}
 
-	if ((OCFS_I(inode)->ip_alloc_size !=
-	     (__s64)((u64)fe->i_clusters << osb->s_clustersize_bits)) ||
+	if ((OCFS_I(inode)->ip_clusters != fe->i_clusters) ||
 	    (inode->i_size != (__s64) fe->i_size) ||
 	    inode->i_uid != fe->i_uid ||
 	    inode->i_gid != fe->i_gid || 
 	    inode->i_mode != fe->i_mode ||
 	    inode->i_nlink != fe->i_links_count){
 
-		if (OCFS_I(inode)->ip_alloc_size >
-		    (__s64)((u64)fe->i_clusters << osb->s_clustersize_bits)) {
+		if (OCFS_I(inode)->ip_clusters > fe->i_clusters) {
 			LOG_TRACE_ARGS("destroying extent maps for %llu, "
-				       "alloc_size = %llu, i_clusters = %u\n", 
+				       "ip_clusters = %u, i_clusters = %u\n", 
 				       OCFS_I(inode)->ip_blkno, 
-				       OCFS_I(inode)->ip_alloc_size, 
+				       OCFS_I(inode)->ip_clusters, 
 				       fe->i_clusters);
 			drop_map = 1; /* Because we have the lock here */
 		}
@@ -1093,8 +1088,7 @@
 		}
 
 		LOG_TRACE_STR("Allocsize, filesize or seq no did not match");
-		OCFS_I(inode)->ip_alloc_size = 
-			(u64)fe->i_clusters << osb->s_clustersize_bits;
+		OCFS_I(inode)->ip_clusters = fe->i_clusters;
 		inode->i_size = fe->i_size;
 		if (S_ISREG(inode->i_mode)) {
 			OCFS_I(inode)->ip_mmu_private = inode->i_size;

Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/journal.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -866,14 +866,13 @@
 	LOG_TRACE_ARGS("fe->i_size = %llu\n", fe->i_size);
 	LOG_TRACE_ARGS("fe->i_clusters = %u\n", fe->i_clusters);
 	LOG_TRACE_ARGS("fe->i_blkno = %llu\n", fe->i_blkno);
-	LOG_TRACE_ARGS("inode->ip_alloc_size = %llu\n", 
-		       OCFS_I(inode)->ip_alloc_size);
+	LOG_TRACE_ARGS("inode->ip_clusters = %u\n", 
+		       OCFS_I(inode)->ip_clusters);
 
-	if (OCFS_I(inode)->ip_alloc_size 
-	    != ((u64)fe->i_clusters << osb->s_clustersize_bits))
+	if (OCFS_I(inode)->ip_clusters != fe->i_clusters) 
 		LOG_ERROR_ARGS("inode and fe alloc sizes differ! "
-			       "(%llu != %llu", OCFS_I(inode)->ip_alloc_size,
-			       (u64)fe->i_clusters << osb->s_clustersize_bits);
+			       "(%u != %u", OCFS_I(inode)->ip_clusters,
+			       fe->i_clusters);
 	if (inode->i_size != fe->i_size)
 		LOG_ERROR_ARGS("inode and fe i_size's differ! (%llu != %llu", 
 			       inode->i_size, fe->i_size);
@@ -1199,7 +1198,6 @@
 	struct buffer_head *bh = NULL;
 	ocfs_journal * journal = NULL;
 	int recovery_lock = 0, got_lock = 0, clean_orphans = 0;
-	__u64 alloc_size;
 
 	LOG_ENTRY_ARGS("(node_num=%d, osb->node_num = %d)\n", node_num,
 		       osb->node_num);
@@ -1273,11 +1271,8 @@
 	clean_orphans = 1;
 
 	fe = (ocfs2_dinode *) bh->b_data;
-	/* gonna need this later */
-	alloc_size = (u64)fe->i_clusters << osb->s_clustersize_bits;
+	OCFS_I(inode)->ip_clusters = fe->i_clusters;
 
-	OCFS_I(inode)->ip_alloc_size = alloc_size;
-
 	status = ocfs_force_read_journal(inode);
 	if (status < 0) {
 		LOG_ERROR_STATUS(status);

Modified: trunk/src/localalloc.c
===================================================================
--- trunk/src/localalloc.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/localalloc.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -123,7 +123,7 @@
 int ocfs_alloc_should_use_local(ocfs_super *osb, u64 bits)
 {
 	if (osb->have_local_alloc 
-	    && ((bits<<osb->s_clustersize_bits) <= OCFS_LOCAL_ALLOC_MAX_ALLOC)
+	    && (ocfs2_clusters_to_bytes(osb->sb, bits) <= OCFS_LOCAL_ALLOC_MAX_ALLOC)
 	    && (bits <= ocfs_local_alloc_window_bits(osb)))
 		return(1);
 	return(0);

Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/namei.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -1419,7 +1419,7 @@
 		       inode->i_blocks, inode->i_size, blocks);
 
 	/* Sanity check -- make sure we're going to fit. */
-	if (bytes_left > OCFS_I(inode)->ip_alloc_size) {
+	if (bytes_left > ocfs2_clusters_to_bytes(sb, OCFS_I(inode)->ip_clusters)) {
 		status = -EIO;
 		LOG_ERROR_STATUS(status);
 		goto bail;

Modified: trunk/src/ocfs.h
===================================================================
--- trunk/src/ocfs.h	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/ocfs.h	2004-10-22 21:28:50 UTC (rev 1586)
@@ -370,8 +370,8 @@
 	/* These fields are protected by ip_lock */
 	spinlock_t	  ip_lock;
 	__u32             ip_open_cnt;
-	__s64             ip_alloc_size;
-	__s64		  ip_mmu_private;
+	u32		ip_clusters;
+	u64		ip_mmu_private;
 	__u32             ip_open_flags;
 	struct ocfs2_extent_map ip_map;
 

Modified: trunk/src/ocfs2.h
===================================================================
--- trunk/src/ocfs2.h	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/ocfs2.h	2004-10-22 21:28:50 UTC (rev 1586)
@@ -57,6 +57,12 @@
 	return clusters;
 }
 
+static inline u64 ocfs2_clusters_to_bytes(struct super_block *sb,
+					  u32 clusters)
+{
+	return (u64)clusters << OCFS_SB(sb)->s_clustersize_bits;
+}
+
 static inline u64 ocfs2_align_bytes_to_clusters(struct super_block *sb,
 						u64 bytes)
 {

Modified: trunk/src/proc.c
===================================================================
--- trunk/src/proc.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/proc.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -468,7 +468,7 @@
 
 	len = sprintf (page, PROC_STATS, osb->file_open_cnt, pubmap,
 		       osb->num_nodes, osb->s_clustersize, 
-		       (u64)osb->cluster_bitmap.validbits << osb->s_clustersize_bits,
+		       ocfs2_clusters_to_bytes(osb->sb, osb->cluster_bitmap.validbits),
 		       osb->cluster_bitmap.failed, 
 		       osb->cluster_bitmap.ok_retries, 
 		       atomic_read(&osb->journal->num_trans),

Modified: trunk/src/suballoc.c
===================================================================
--- trunk/src/suballoc.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/suballoc.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -331,9 +331,9 @@
 	}
 
 	spin_lock(&OCFS_I(alloc_inode)->ip_lock);
-	OCFS_I(alloc_inode)->ip_alloc_size = 
-		(u64)fe->i_clusters << osb->s_clustersize_bits;
-	fe->i_size = OCFS_I(alloc_inode)->ip_alloc_size;
+	OCFS_I(alloc_inode)->ip_clusters = fe->i_clusters;
+	fe->i_size = ocfs2_clusters_to_bytes(alloc_inode->i_sb,
+					     fe->i_clusters);
 	OCFS_I(alloc_inode)->u.ip_bitinfo.used_bits = fe->id1.bitmap1.i_used;
 	OCFS_I(alloc_inode)->u.ip_bitinfo.total_bits = fe->id1.bitmap1.i_total;
 	spin_unlock(&OCFS_I(alloc_inode)->ip_lock);

Modified: trunk/src/super.c
===================================================================
--- trunk/src/super.c	2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/super.c	2004-10-22 21:28:50 UTC (rev 1586)
@@ -1626,19 +1626,22 @@
 
 	/* for now, just one extent... but in the future... */
 	osb->bitmap_blkno = p_blkno;
-	osb->bitmap_blocks = OCFS_I(inode)->ip_alloc_size >> osb->sb->s_blocksize_bits;
+	osb->bitmap_blocks =
+		ocfs2_clusters_to_blocks(inode->i_sb,
+					 OCFS_I(inode)->ip_clusters);
 	osb->num_clusters = OCFS_I(inode)->u.ip_bitinfo.total_bits;
 	printk("bitmap_blkno=%llu, bitmap_blocks=%u, num_clusters=%u\n",
 	       osb->bitmap_blkno, osb->bitmap_blocks, osb->num_clusters);
 	
 	ocfs_initialize_bitmap(osb->sb, &osb->cluster_bitmap,
 			       osb->num_clusters,
-			       OCFS_I(inode)->ip_alloc_size << 3);
+			       (u32)(ocfs2_clusters_to_bytes(inode->i_sb,
+							     OCFS_I(inode)->ip_clusters) << 3));
 	/* read the whole cluster bitmap off disk, even though we only
 	 * need the beginning of it. */
 	status = ocfs_read_blocks(osb,
 				  osb->bitmap_blkno,
-				  OCFS_I(inode)->ip_alloc_size >> osb->sb->s_blocksize_bits, 
+				  osb->bitmap_blocks,
 				  osb->cluster_bitmap.chunk, 0, inode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);



More information about the Ocfs2-commits mailing list