[Ocfs2-commits] smushran commits r2198 - trunk/fs/ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Thu Apr 28 20:34:13 CDT 2005


Author: smushran
Signed-off-by: mfasheh
Date: 2005-04-28 20:34:12 -0500 (Thu, 28 Apr 2005)
New Revision: 2198

Modified:
   trunk/fs/ocfs2/dir.c
   trunk/fs/ocfs2/dlmglue.c
   trunk/fs/ocfs2/file.c
   trunk/fs/ocfs2/inode.c
   trunk/fs/ocfs2/journal.c
   trunk/fs/ocfs2/namei.c
   trunk/fs/ocfs2/ocfs2.h
   trunk/fs/ocfs2/suballoc.c
   trunk/fs/ocfs2/super.c
Log:
inode->i_blocks set to 512byte blocksize units
rather than the fs blocksize as that is apparently correct
Signed-off-by: mfasheh

Modified: trunk/fs/ocfs2/dir.c
===================================================================
--- trunk/fs/ocfs2/dir.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/dir.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -355,8 +355,9 @@
 		}
 	}
 
-	status = ocfs2_extent_map_get_blocks(dir, dir->i_blocks, 1,
-					     &p_blkno, NULL);
+	status = ocfs2_extent_map_get_blocks(dir, (dir->i_blocks >>
+						   (sb->s_blocksize_bits - 9)),
+					     1, &p_blkno, NULL);
 	if (status < 0) {
 		mlog_errno(status);
 		goto bail;
@@ -470,7 +471,7 @@
 
 	dir_i_size += dir->i_sb->s_blocksize;
 	i_size_write(dir, dir_i_size);
-	dir->i_blocks += 1;
+	dir->i_blocks = ocfs2_align_bytes_to_sectors(dir_i_size);
 	status = ocfs_mark_inode_dirty(handle, dir, parent_fe_bh);
 	if (status < 0) {
 		mlog_errno(status);

Modified: trunk/fs/ocfs2/dlmglue.c
===================================================================
--- trunk/fs/ocfs2/dlmglue.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/dlmglue.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -1248,7 +1248,7 @@
 	if (S_ISLNK(inode->i_mode) && !oip->ip_clusters)
 		inode->i_blocks = 0;
 	else
-		inode->i_blocks  = (inode->i_size + inode->i_sb->s_blocksize - 1) >> inode->i_sb->s_blocksize_bits;
+		inode->i_blocks  = ocfs2_align_bytes_to_sectors(i_size_read(inode));
 	OCFS_SET_INODE_TIME(inode, i_atime, be64_to_cpu(lvb->lvb_iatime));
 	OCFS_SET_INODE_TIME(inode, i_ctime, be64_to_cpu(lvb->lvb_ictime));
 	OCFS_SET_INODE_TIME(inode, i_mtime, be64_to_cpu(lvb->lvb_imtime));

Modified: trunk/fs/ocfs2/file.c
===================================================================
--- trunk/fs/ocfs2/file.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/file.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -168,11 +168,8 @@
 static void ocfs2_update_inode_size(struct inode *inode,
 				    u64 new_size)
 {
-	struct super_block *sb = inode->i_sb;
-
 	i_size_write(inode, new_size);
-	inode->i_blocks = (new_size + sb->s_blocksize - 1) >> 
-		sb->s_blocksize_bits;
+	inode->i_blocks = ocfs2_align_bytes_to_sectors(new_size);
 }
 
 void ocfs2_file_finish_extension(struct inode *inode, loff_t newsize,
@@ -404,15 +401,13 @@
 			u64 new_i_size)
 {
 	int status, grow;
-	struct super_block *sb = inode->i_sb;
 	ocfs_inode_private *oip = OCFS_I(inode);
 
 	mlog_entry_void();
 
 	grow = new_i_size > inode->i_size;
 	i_size_write(inode, new_i_size);
-	inode->i_blocks = (new_i_size + sb->s_blocksize - 1) 
-		>> sb->s_blocksize_bits;
+	inode->i_blocks = ocfs2_align_bytes_to_sectors(new_i_size);
 	inode->i_ctime = inode->i_mtime = CURRENT_TIME;
 
 	status = ocfs_mark_inode_dirty(handle, inode, fe_bh);

Modified: trunk/fs/ocfs2/inode.c
===================================================================
--- trunk/fs/ocfs2/inode.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/inode.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -371,7 +371,7 @@
 	if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
 		inode->i_blocks = 0;
 	else
-		inode->i_blocks = (fe->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
+		inode->i_blocks = ocfs2_align_bytes_to_sectors(fe->i_size);
 	inode->i_mapping->a_ops = &ocfs_aops;
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 	inode->i_attr_flags |= ATTR_FLAG_NOATIME;
@@ -1030,7 +1030,7 @@
 	if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
 		inode->i_blocks = 0;
 	else
-		inode->i_blocks = (i_size_read(inode) + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
+		inode->i_blocks = ocfs2_align_bytes_to_sectors(i_size_read(inode));
 	OCFS_SET_INODE_TIME(inode, i_ctime, fe->i_ctime);
 	OCFS_SET_INODE_TIME(inode, i_atime, fe->i_atime);
 	OCFS_SET_INODE_TIME(inode, i_mtime, fe->i_mtime);

Modified: trunk/fs/ocfs2/journal.c
===================================================================
--- trunk/fs/ocfs2/journal.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/journal.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -885,14 +885,15 @@
 	mlog_entry_void();
 
 	OCFS_ASSERT(inode->i_blocks ==
-		    (inode->i_size >> inode->i_sb->s_blocksize_bits));
+		    ocfs2_align_bytes_to_sectors(i_size_read(inode)));
 
 	memset(bhs, 0, sizeof(struct buffer_head *) * CONCURRENT_JOURNAL_FILL);
 
-	mlog(0, "Force reading %lu blocks\n", inode->i_blocks);
+	mlog(0, "Force reading %lu blocks\n",
+	     (inode->i_blocks >> (inode->i_sb->s_blocksize_bits - 9)));
 
 	v_blkno = 0;
-	while (v_blkno < inode->i_blocks) {
+	while (v_blkno < (inode->i_blocks >> (inode->i_sb->s_blocksize_bits - 9))) {
 		status = ocfs2_extent_map_get_blocks(inode, v_blkno,
 						     1, &p_blkno,
 						     &p_blocks);

Modified: trunk/fs/ocfs2/namei.c
===================================================================
--- trunk/fs/ocfs2/namei.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/namei.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -287,7 +287,7 @@
 
 	i_size_write(inode, inode->i_sb->s_blocksize);
 	inode->i_nlink = 2;
-	inode->i_blocks = 1;
+	inode->i_blocks = ocfs2_align_bytes_to_sectors(inode->i_sb->s_blocksize);
 	status = ocfs_mark_inode_dirty(handle, inode, fe_bh);
 	if (status < 0) {
 		mlog_errno(status);
@@ -1625,7 +1625,7 @@
 			goto bail;
 		}
 		i_size_write(inode, newsize);
-		inode->i_blocks = (newsize + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
+		inode->i_blocks = ocfs2_align_bytes_to_sectors(newsize);
 	} else {
 		inode->i_op = &ocfs_fast_symlink_inode_operations;
 		memcpy((char *) fe->id2.i_symlink, symname, l);

Modified: trunk/fs/ocfs2/ocfs2.h
===================================================================
--- trunk/fs/ocfs2/ocfs2.h	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/ocfs2.h	2005-04-29 01:34:12 UTC (rev 2198)
@@ -73,6 +73,18 @@
 	return (u64)clusters << cl_bits;
 }
 
+static inline unsigned long ocfs2_align_bytes_to_blocks(struct super_block *sb,
+							u64 bytes)
+{
+	bytes += sb->s_blocksize - 1;
+	return (unsigned long)(bytes >> sb->s_blocksize_bits);
+}
+
+static inline unsigned long ocfs2_align_bytes_to_sectors(u64 bytes)
+{
+	return (unsigned long)((bytes + 511) >> 9);
+}
+
 #define ocfs2_set_bit ext2_set_bit
 #define ocfs2_clear_bit ext2_clear_bit
 #define ocfs2_test_bit ext2_test_bit

Modified: trunk/fs/ocfs2/suballoc.c
===================================================================
--- trunk/fs/ocfs2/suballoc.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/suballoc.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -325,7 +325,8 @@
 					     fe->i_clusters);
 	spin_unlock(&OCFS_I(alloc_inode)->ip_lock);
 	i_size_write(alloc_inode, fe->i_size);
-	alloc_inode->i_blocks = (i_size_read(alloc_inode) + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
+	alloc_inode->i_blocks =
+		ocfs2_align_bytes_to_sectors(i_size_read(alloc_inode));
 
 	status = 0;
 bail:

Modified: trunk/fs/ocfs2/super.c
===================================================================
--- trunk/fs/ocfs2/super.c	2005-04-29 00:00:10 UTC (rev 2197)
+++ trunk/fs/ocfs2/super.c	2005-04-29 01:34:12 UTC (rev 2198)
@@ -633,7 +633,7 @@
 		       (osb->s_clustersize >> osb->sb->s_blocksize_bits);
 	buf->f_bavail = buf->f_bfree;
 	buf->f_files = numbits;
-	buf->f_ffree = numbits - freebits;
+	buf->f_ffree = freebits;
 
 	brelse(bh);
 



More information about the Ocfs2-commits mailing list