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

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Dec 28 19:04:25 CST 2004


Author: mfasheh
Date: 2004-12-28 19:04:23 -0600 (Tue, 28 Dec 2004)
New Revision: 1724

Modified:
   trunk/src/24io.c
   trunk/src/alloc.c
   trunk/src/aops.c
   trunk/src/dir.c
   trunk/src/dlmglue.c
   trunk/src/file.c
   trunk/src/inode.c
   trunk/src/journal.c
   trunk/src/namei.c
   trunk/src/ocfs_compat.h
   trunk/src/suballoc.c
Log:
* make our i_size access' 2.6 safe



Modified: trunk/src/24io.c
===================================================================
--- trunk/src/24io.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/24io.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -143,10 +143,10 @@
 	}
 
 	if (rw == READ) {
-	   if (inode->i_size <= *offp) /* read past end of file */
+	   if (i_size_read(inode) <= *offp) /* read past end of file */
 	      return 0;
-	   if  (size > (inode->i_size - *offp))
-	      size = inode->i_size - *offp;
+	   if  (size > (i_size_read(inode) - *offp))
+	      size = i_size_read(inode) - *offp;
 	}
 
 	/* make sure aligned to either PAGE_SIZE or sect_size IO */
@@ -472,7 +472,7 @@
 	int sector_size = 1 << OCFS_SB(inode->i_sb)->s_sectsize_bits;
 	int sector_mask = (1 << sector_size) - 1;
 
-	if (!size || (pos == inode->i_size)) {
+	if (!size || (pos == i_size_read(inode))) {
 		ocfs_aio_complete(req, 0);
 		return 0;
   	}
@@ -480,7 +480,7 @@
 	if (aio_max_size < sector_size)
 		return -EINVAL;
 
-	if (pos >= inode->i_size)
+	if (pos >= i_size_read(inode))
 		return -ENXIO;
 
 	if ((pos < 0) || (pos & sector_mask) || (size & sector_mask))

Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/alloc.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -1171,7 +1171,7 @@
 	down_write(&OCFS_I(inode)->ip_alloc_sem);
 
 	target_i_clusters = ocfs2_clusters_for_bytes(osb->sb,
-						     inode->i_size);
+						     i_size_read(inode));
 
 	/* the extent map gets truncated in ocfs_do_truncate */
 	ocfs2_lvb_set_trunc_clusters(inode, target_i_clusters);
@@ -1306,7 +1306,7 @@
 	*tc = NULL;
 
 	new_i_clusters = ocfs2_clusters_for_bytes(osb->sb,
-						  inode->i_size);
+						  i_size_read(inode));
 	fe = (ocfs2_dinode *) fe_bh->b_data;
 
 	LOG_TRACE_ARGS("fe->i_clusters = %u, new_i_clusters = %u, fe->i_size ="

Modified: trunk/src/aops.c
===================================================================
--- trunk/src/aops.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/aops.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -188,7 +188,7 @@
 	if (vbo != OCFS_I(inode)->ip_mmu_private) {
 		LOG_ERROR_ARGS("Uh-oh, vbo = %lld, i_size = %llu, mmu = %llu, "
 			       "inode = %llu\n",
-			       vbo, inode->i_size, 
+			       vbo, i_size_read(inode),
 			       OCFS_I(inode)->ip_mmu_private,
 			       OCFS_I(inode)->ip_blkno);
 		BUG();

Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/dir.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -105,7 +105,7 @@
 
 	offset = filp->f_pos & (sb->s_blocksize - 1);
 
-	while (!error && !stored && filp->f_pos < inode->i_size) {
+	while (!error && !stored && filp->f_pos < i_size_read(inode)) {
 		blk = (filp->f_pos) >> sb->s_blocksize_bits;
 		bh = ocfs_bread (inode, blk, &err, 0);
 		if (!bh) {
@@ -153,7 +153,7 @@
 			filp->f_version = inode->i_version;
 		}
 
-		while (!error && filp->f_pos < inode->i_size 
+		while (!error && filp->f_pos < i_size_read(inode) 
 		       && offset < sb->s_blocksize) {
 			de = (struct ocfs2_dir_entry *) (bh->b_data + offset);
 			if (!ocfs_check_dir_entry (inode, de, bh, offset)) {
@@ -276,7 +276,7 @@
 	int err;
 
 	sb = inode->i_sb;
-	if ((inode->i_size <
+	if ((i_size_read(inode) <
 	     (OCFS2_DIR_REC_LEN(1) + OCFS2_DIR_REC_LEN(2))) ||
 	    !(bh = ocfs_bread (inode, 0, &err, 0))) {
 	    	LOG_ERROR_ARGS ("bad directory (dir #%llu) - no data block\n", 
@@ -298,7 +298,7 @@
 	}
 	offset = le16_to_cpu(de->rec_len) + le16_to_cpu(de1->rec_len);
 	de = (struct ocfs2_dir_entry *) ((char *) de1 + le16_to_cpu(de1->rec_len));
-	while (offset < inode->i_size ) {
+	while (offset < i_size_read(inode) ) {
 		if (!bh || (void *) de >= (void *) (bh->b_data + sb->s_blocksize)) {
 			brelse (bh);
 			bh = ocfs_bread(inode,
@@ -341,7 +341,7 @@
 	u64 p_blkno;
 
 	spin_lock(&OCFS_I(dir)->ip_lock);
-	extend = (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters));
+	extend = (i_size_read(dir) == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters));
 	spin_unlock(&OCFS_I(dir)->ip_lock);
 
 	if (extend) {
@@ -381,8 +381,9 @@
 			   struct buffer_head **new_de_bh)
 {
 	int status = 0;
+	int credits, num_free_extents;
+	loff_t dir_i_size;
 	ocfs2_dinode *fe = (ocfs2_dinode *) parent_fe_bh->b_data;
-	int credits, num_free_extents;
 	ocfs2_alloc_context *data_ac = NULL;
 	ocfs2_alloc_context *meta_ac = NULL;
 	ocfs_journal_handle *handle = NULL;
@@ -392,8 +393,9 @@
 
 	LOG_ENTRY();
 
+	dir_i_size = i_size_read(dir);
 	LOG_TRACE_ARGS("extending dir %llu (i_size = %llu)\n", 
-		       OCFS_I(dir)->ip_blkno, dir->i_size);
+		       OCFS_I(dir)->ip_blkno, dir_i_size);
 
 	handle = ocfs_alloc_handle(osb);
 	if (handle == NULL) {
@@ -403,7 +405,7 @@
 
 	/* dir->i_size is always block aligned. */
 	spin_lock(&OCFS_I(dir)->ip_lock);
-	if (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters)) {
+	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) {
@@ -464,7 +466,8 @@
 		goto bail;
 	}
 
-	dir->i_size += dir->i_sb->s_blocksize;
+	dir_i_size += dir->i_sb->s_blocksize;
+	i_size_write(dir, dir_i_size);
 	dir->i_blocks += 1;
 	status = ocfs_mark_inode_dirty(handle, dir, parent_fe_bh);
 	if (status < 0) {
@@ -516,7 +519,7 @@
 
 	OCFS_ASSERT(S_ISDIR(dir->i_mode));
 	fe = (ocfs2_dinode *) parent_fe_bh->b_data;
-	OCFS_ASSERT(fe->i_size == dir->i_size);
+	OCFS_ASSERT(fe->i_size == i_size_read(dir));
 
 	sb = dir->i_sb;
 
@@ -540,7 +543,7 @@
 			brelse (bh);
 			bh = NULL;
 
-			if (dir->i_size <= offset) {
+			if (i_size_read(dir) <= offset) {
 				status = ocfs_extend_dir(osb, 
 							 dir, 
 							 parent_fe_bh,

Modified: trunk/src/dlmglue.c
===================================================================
--- trunk/src/dlmglue.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/dlmglue.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -1079,7 +1079,7 @@
 	lvb->lvb_iclusters = oip->ip_clusters;
 	lvb->lvb_iuid      = inode->i_uid;
 	lvb->lvb_igid      = inode->i_gid;
-	lvb->lvb_isize     = inode->i_size;
+	lvb->lvb_isize     = i_size_read(inode);
 	lvb->lvb_imode     = inode->i_mode;
 	lvb->lvb_inlink    = inode->i_nlink;
 	lvb->lvb_iatime    = ocfs_get_seconds(inode->i_atime);
@@ -1102,7 +1102,7 @@
 	oip->ip_clusters = lvb->lvb_iclusters;
 	inode->i_uid     = lvb->lvb_iuid;
 	inode->i_gid     = lvb->lvb_igid;
-	inode->i_size    = lvb->lvb_isize;
+	i_size_write(inode, lvb->lvb_isize);
 	inode->i_mode    = lvb->lvb_imode;
 	inode->i_nlink   = lvb->lvb_inlink;
 	inode->i_blocks  = (inode->i_size + inode->i_sb->s_blocksize - 1) 

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/file.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -294,9 +294,8 @@
 	saved_ppos = *ppos;
 
 	if (filp->f_flags & O_APPEND) {
-		LOG_TRACE_ARGS("O_APPEND: inode->i_size=%llu, ppos was %llu\n",
-			       inode->i_size, saved_ppos);
-		saved_ppos = inode->i_size;
+		saved_ppos = i_size_read(inode);
+		LOG_TRACE_ARGS("O_APPEND: inode->i_size=%llu\n", saved_ppos);
 
 		/* ugh, work around some applications which open
 		 * everything O_DIRECT + O_APPEND and really don't
@@ -321,12 +320,12 @@
 
 	newsize = count + saved_ppos;
 	if (filp->f_flags & O_APPEND)
-		newsize = count + inode->i_size;
+		newsize = count + i_size_read(inode);
 
 	LOG_TRACE_ARGS ("ppos=%llu newsize=%llu cursize=%llu\n",
-			saved_ppos, newsize, inode->i_size);
+			saved_ppos, newsize, i_size_read(inode));
 
-	if (newsize > inode->i_size) {
+	if (newsize > i_size_read(inode)) {
 		if (!level) {
 			/* we want an extend, but need a higher
 			 * level cluster lock. */
@@ -340,7 +339,7 @@
 
 		LOG_TRACE_ARGS("Writing at EOF, will need more allocation: "
 			       "i_size=%llu, need=%llu\n",
-			       inode->i_size, newsize);
+			       i_size_read(inode), newsize);
 
 		status = ocfs_extend_file(osb, inode, newsize);
 		if (status < 0) {
@@ -418,14 +417,14 @@
 	if (extended) {
 		LOG_TRACE_STR
 		    ("Generic_file_write ok, asking for OIN update now");
-		inode->i_size = newsize;
+		i_size_write(inode, newsize);
 		inode->i_blocks = (newsize + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
 		if (do_direct_io) {
 			/*
 			 * This leaves dirty data in holes.
 			 * Caveat Emptor.
 			 */
-			OCFS_I(inode)->ip_mmu_private = inode->i_size;
+			OCFS_I(inode)->ip_mmu_private = i_size_read(inode);
 		} else {
 			status = ocfs2_zero_extend(inode);
 			/*
@@ -484,7 +483,7 @@
 		/* anything special for o_direct? */
 		LOG_TRACE_STR ("O_DIRECT");
 		if (((*ppos) & (sector_size - 1)) || (count & (sector_size - 1)) || 
-		    ((unsigned long)buf & (sector_size - 1)) || (inode->i_size & (sector_size -1))) {
+		    ((unsigned long)buf & (sector_size - 1)) || (i_size_read(inode) & (sector_size -1))) {
 			do_direct_io = 0;
 			filp->f_flags &= ~O_DIRECT;
 		} else {
@@ -581,7 +580,7 @@
 	LOG_ENTRY();
 
 	grow = new_i_size > inode->i_size;
-	inode->i_size = new_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_ctime = inode->i_mtime = CURRENT_TIME;
@@ -595,7 +594,7 @@
 	/* FIXME: I think this should all be in the caller */
 	spin_lock(&oip->ip_lock);
 	if (!grow)
-		oip->ip_mmu_private = inode->i_size;
+		oip->ip_mmu_private = i_size_read(inode);
 	spin_unlock(&oip->ip_lock);
 
 bail:
@@ -662,7 +661,7 @@
 
 	fe = (ocfs2_dinode *) fe_bh->b_data;
 	OCFS_ASSERT(IS_VALID_FILE_ENTRY(fe));
-	OCFS_ASSERT(fe->i_size == inode->i_size);
+	OCFS_ASSERT(fe->i_size == i_size_read(inode));
 
 	if (new_i_size > fe->i_size) {
 		LOG_TRACE_ARGS("asked to truncate file with size (%llu) "
@@ -754,19 +753,12 @@
 {
 	struct address_space *mapping = inode->i_mapping;
 	struct page *page;
-	u64 size = inode->i_size - 1;
+	u64 size = i_size_read(inode) - 1;
 	unsigned int offset;
 	int res = 0;
 
-#ifdef PURE_EVIL
-	if (evil_filename_check(EVIL_INODE, inode)) {
-		LOG_ERROR_ARGS("EVIL ZEROEXTEND: i_size=%llu, mmu_priv=%llu\n",
-			       inode->i_size, OCFS_I(inode)->ip_mmu_private);
-	}
-#endif
-
 	/* Start the zeroing of blocks */
-	if (inode->i_size > OCFS_I(inode)->ip_mmu_private) {
+	if (i_size_read(inode) > OCFS_I(inode)->ip_mmu_private) {
 		page = grab_cache_page(mapping,
 				       size >> PAGE_CACHE_SHIFT);
 		if (!page) {
@@ -953,10 +945,10 @@
 
 	fe = (ocfs2_dinode *) bh->b_data;
 	OCFS_ASSERT(IS_VALID_FILE_ENTRY(fe));
-	OCFS_ASSERT(inode->i_size == fe->i_size);
-	OCFS_ASSERT(new_i_size >= inode->i_size);
+	OCFS_ASSERT(i_size_read(inode) == fe->i_size);
+	OCFS_ASSERT(new_i_size >= i_size_read(inode));
 
-	if (inode->i_size == new_i_size)
+	if (i_size_read(inode) == new_i_size)
   		goto leave;
 
 	clusters_to_add = ocfs2_clusters_for_bytes(osb->sb, new_i_size) 
@@ -964,7 +956,7 @@
 
 	LOG_TRACE_ARGS("extend inode %llu, new_i_size = %llu, i_size = %llu, "
 		       "fe->i_clusters = %u, clusters_to_add = %u\n", 
-		       OCFS_I(inode)->ip_blkno, new_i_size, inode->i_size, 
+		       OCFS_I(inode)->ip_blkno, new_i_size, i_size_read(inode),
 		       fe->i_clusters, clusters_to_add);
 
 	if (!clusters_to_add)
@@ -1110,7 +1102,7 @@
 		       fe->i_clusters, fe->i_size);
 
 	LOG_TRACE_ARGS("inode: ip_clusters=%u, i_size=%llu\n",
-		       OCFS_I(inode)->ip_clusters, inode->i_size);
+		       OCFS_I(inode)->ip_clusters, i_size_read(inode));
 
 	fe->i_ctime = fe->i_mtime = OCFS_CURRENT_TIME;
 
@@ -1200,8 +1192,8 @@
 	unlock = 1;
 
 	if (attr->ia_valid & ATTR_SIZE &&
-	    newsize != inode->i_size) {
-		if (inode->i_size > newsize)
+	    newsize != i_size_read(inode)) {
+		if (i_size_read(inode) > newsize)
 			status = ocfs_truncate_file(osb, newsize, inode);
 		else
 			status = ocfs_extend_file(osb, inode, newsize);
@@ -1212,11 +1204,11 @@
 			goto bail;
 		}
 		spin_lock(&OCFS_I(inode)->ip_lock);
-		inode->i_size = newsize;
+		i_size_write(inode, newsize);
 		inode->i_blocks = (newsize + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
 		if (OCFS_I(inode)->ip_flags & OCFS_INODE_OPEN_DIRECT) {
 			/* This is a total broken hack for O_DIRECT crack */
-			OCFS_I(inode)->ip_mmu_private = inode->i_size;
+			OCFS_I(inode)->ip_mmu_private = i_size_read(inode);
 		}
 		spin_unlock(&OCFS_I(inode)->ip_lock);
 		status = ocfs2_zero_extend(inode);

Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/inode.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -415,20 +415,20 @@
 		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
 		    inode->i_fop = &ocfs_fops;
 		    inode->i_op = &ocfs_file_iops;
-		    inode->i_size = fe->i_size;
+		    i_size_write(inode, fe->i_size);
 		    OCFS_I(inode)->ip_mmu_private = inode->i_size;
 		    break;
 	    case S_IFDIR:
 		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
 		    inode->i_op = &ocfs_dir_iops;
 		    inode->i_fop = &ocfs_dops;
-		    inode->i_size = fe->i_size;
+		    i_size_write(inode, fe->i_size);
 		    break;
 	    case S_IFLNK:
 		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
 		    inode->i_op = &ocfs_symlink_inode_operations;
 		    //inode->i_fop = &ocfs_fops;
-		    inode->i_size = fe->i_size;
+		    i_size_write(inode, fe->i_size);
 		    break;
 	    default:
 		    init_special_inode(inode, inode->i_mode,
@@ -887,7 +887,7 @@
 #endif
 
 	if (((u64)block << inode->i_sb->s_blocksize_bits) >=
-	    inode->i_size) {
+	    i_size_read(inode)) {
 		OCFS_ASSERT(reada);
 		return NULL;
 	}
@@ -995,7 +995,7 @@
 	fe->i_clusters = OCFS_I(inode)->ip_clusters;
 	spin_unlock(&OCFS_I(inode)->ip_lock);
 
-	fe->i_size = (u64)inode->i_size;
+	fe->i_size = (u64)i_size_read(inode);
 	fe->i_links_count = inode->i_nlink;
 	fe->i_uid = inode->i_uid;
 	fe->i_gid = inode->i_gid;
@@ -1033,12 +1033,12 @@
 	spin_lock(&oip->ip_lock);
 
 	oip->ip_clusters = fe->i_clusters;
-	inode->i_size = fe->i_size;
+	i_size_write(inode, fe->i_size);
 	if (S_ISREG(inode->i_mode)) {
-		oip->ip_mmu_private = inode->i_size;
+		oip->ip_mmu_private = i_size_read(inode);
 	}
 	inode->i_nlink = fe->i_links_count;
-	inode->i_blocks = (inode->i_size + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
+	inode->i_blocks = (i_size_read(inode) + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
 	inode->i_uid = fe->i_uid;
 	inode->i_gid = fe->i_gid;
 	inode->i_mode = fe->i_mode;

Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/journal.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -1341,7 +1341,7 @@
 
 	offset = 0;
 	iter = NULL;
-	while(offset < orphan_dir_inode->i_size) {
+	while(offset < i_size_read(orphan_dir_inode)) {
 		blk = offset >> sb->s_blocksize_bits;
 
 		bh = ocfs_bread(orphan_dir_inode, blk, &status, 0);
@@ -1356,7 +1356,7 @@
 		}
 
 		local = 0;
-		while(offset < orphan_dir_inode->i_size
+		while(offset < i_size_read(orphan_dir_inode)
 		      && local < sb->s_blocksize) {
 			de = (struct ocfs2_dir_entry *) (bh->b_data + local);
 

Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/namei.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -240,7 +240,7 @@
 		goto bail;
 	}
 
-	inode->i_size = inode->i_sb->s_blocksize;
+	i_size_write(inode, inode->i_sb->s_blocksize);
 	inode->i_nlink = 2;
 	inode->i_blocks = 1;
 	status = ocfs_mark_inode_dirty(handle, inode, fe_bh);
@@ -1370,13 +1370,13 @@
 	int p_blocks;
 	int virtual, blocks, status, i, bytes_left;
 
-	bytes_left = inode->i_size + 1;
+	bytes_left = i_size_read(inode) + 1;
 	/* we can't trust i_blocks because we're actually going to
 	 * write i_size + 1 bytes. */
 	blocks = (bytes_left + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
 
 	LOG_ENTRY_ARGS("i_blocks = %lu, i_size = %llu, blocks = %d\n", 
-		       inode->i_blocks, inode->i_size, blocks);
+		       inode->i_blocks, i_size_read(inode), blocks);
 
 	/* Sanity check -- make sure we're going to fit. */
 	if (bytes_left > ocfs2_clusters_to_bytes(sb, OCFS_I(inode)->ip_clusters)) {
@@ -1594,7 +1594,7 @@
 		goto bail;
 	}
 	inode->i_rdev = 0;
-	inode->i_size = newsize;
+	i_size_write(inode, newsize);
 	inode->i_blocks = (newsize + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
 
 	status = ocfs_mark_inode_dirty(handle, inode, new_fe_bh);
@@ -1865,7 +1865,7 @@
 	*res_dir = NULL;
 	sb = dir->i_sb;
 
-	nblocks = dir->i_size >> sb->s_blocksize_bits;
+	nblocks = i_size_read(dir) >> sb->s_blocksize_bits;
 	start = OCFS_I(dir)->ip_dir_start_lookup;
 	if (start >= nblocks)
 		start = 0;
@@ -1929,7 +1929,7 @@
 	 * search the last part of the directory before giving up.
 	 */
 	block = nblocks;
-	nblocks = dir->i_size >> sb->s_blocksize_bits;
+	nblocks = i_size_read(dir) >> sb->s_blocksize_bits;
 	if (block < nblocks) {
 		start = 0;
 		goto restart;

Modified: trunk/src/ocfs_compat.h
===================================================================
--- trunk/src/ocfs_compat.h	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/ocfs_compat.h	2004-12-29 01:04:23 UTC (rev 1724)
@@ -158,6 +158,16 @@
 
 #define kstatfs statfs
 
+static inline loff_t i_size_read(struct inode *inode)
+{
+	return inode->i_size;
+}
+
+static inline void i_size_write(struct inode *inode, loff_t i_size)
+{
+	inode->i_size = i_size;
+}
+
 #else /* LINUX_VERSION_CODE < 2.6 */
 #include <linux/sched.h>
 #include <linux/signal.h>

Modified: trunk/src/suballoc.c
===================================================================
--- trunk/src/suballoc.c	2004-12-29 00:30:27 UTC (rev 1723)
+++ trunk/src/suballoc.c	2004-12-29 01:04:23 UTC (rev 1724)
@@ -387,8 +387,8 @@
 	fe->i_size = ocfs2_clusters_to_bytes(alloc_inode->i_sb,
 					     fe->i_clusters);
 	spin_unlock(&OCFS_I(alloc_inode)->ip_lock);
-	alloc_inode->i_size = fe->i_size;
-	alloc_inode->i_blocks = (alloc_inode->i_size + osb->sb->s_blocksize - 1) >> osb->sb->s_blocksize_bits;
+	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;
 
 	status = 0;
 bail:



More information about the Ocfs2-commits mailing list