aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-02-04 20:13:46 -0500
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-02-07 02:23:15 -0500
commit222096ae7f7616caa9e4150948096160cc8a8141 (patch)
tree0740ca11affec2f153e84d7d096d1c11466879e6 /fs/xfs
parentde08dbc1977419efa47eb71f10d96a98eb5bb111 (diff)
[XFS] stop updating inode->i_blocks
The VFS doesn't use i_blocks, it's only used by generic_fillattr and the generic quota code which XFS doesn't use. In XFS there is one use to check whether we have an inline or out of line sumlink, but we can replace that with a check of the XFS_IFINLINE inode flag. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30391a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c3
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_vnode.c2
-rw-r--r--fs/xfs/xfs_vnodeops.c6
4 files changed, 1 insertions, 14 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index c3231a51936..5e16016bf65 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -202,9 +202,6 @@ xfs_validate_fields(
202 loff_t size; 202 loff_t size;
203 203
204 inode->i_nlink = ip->i_d.di_nlink; 204 inode->i_nlink = ip->i_d.di_nlink;
205 inode->i_blocks =
206 XFS_FSB_TO_BB(ip->i_mount, ip->i_d.di_nblocks +
207 ip->i_delayed_blks);
208 /* we're under i_sem so i_size can't change under us */ 205 /* we're under i_sem so i_size can't change under us */
209 size = XFS_ISIZE(ip); 206 size = XFS_ISIZE(ip);
210 if (i_size_read(inode) != size) 207 if (i_size_read(inode) != size)
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 156a1a7da16..49d1d0ee6c2 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -569,7 +569,7 @@ xfs_set_inodeops(
569 break; 569 break;
570 case S_IFLNK: 570 case S_IFLNK:
571 inode->i_op = &xfs_symlink_inode_operations; 571 inode->i_op = &xfs_symlink_inode_operations;
572 if (inode->i_blocks) 572 if (!(XFS_I(inode)->i_df.if_flags & XFS_IFINLINE))
573 inode->i_mapping->a_ops = &xfs_address_space_operations; 573 inode->i_mapping->a_ops = &xfs_address_space_operations;
574 break; 574 break;
575 default: 575 default:
@@ -606,8 +606,6 @@ xfs_revalidate_inode(
606 606
607 inode->i_generation = ip->i_d.di_gen; 607 inode->i_generation = ip->i_d.di_gen;
608 i_size_write(inode, ip->i_d.di_size); 608 i_size_write(inode, ip->i_d.di_size);
609 inode->i_blocks =
610 XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks);
611 inode->i_atime.tv_sec = ip->i_d.di_atime.t_sec; 609 inode->i_atime.tv_sec = ip->i_d.di_atime.t_sec;
612 inode->i_atime.tv_nsec = ip->i_d.di_atime.t_nsec; 610 inode->i_atime.tv_nsec = ip->i_d.di_atime.t_nsec;
613 inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec; 611 inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec;
diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c
index 8f0f74fc703..9bf36dc48a6 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.c
+++ b/fs/xfs/linux-2.6/xfs_vnode.c
@@ -106,8 +106,6 @@ vn_revalidate(
106 inode->i_nlink = ip->i_d.di_nlink; 106 inode->i_nlink = ip->i_d.di_nlink;
107 inode->i_uid = ip->i_d.di_uid; 107 inode->i_uid = ip->i_d.di_uid;
108 inode->i_gid = ip->i_d.di_gid; 108 inode->i_gid = ip->i_d.di_gid;
109 inode->i_blocks =
110 XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks);
111 inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec; 109 inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec;
112 inode->i_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec; 110 inode->i_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec;
113 inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec; 111 inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec;
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 27e1bea8169..51305242ff8 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1536,9 +1536,6 @@ xfs_release(
1536 error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK); 1536 error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK);
1537 if (error) 1537 if (error)
1538 return error; 1538 return error;
1539 /* Update linux inode block count after free above */
1540 vn_to_inode(vp)->i_blocks = XFS_FSB_TO_BB(mp,
1541 ip->i_d.di_nblocks + ip->i_delayed_blks);
1542 } 1539 }
1543 } 1540 }
1544 1541
@@ -1612,9 +1609,6 @@ xfs_inactive(
1612 error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK); 1609 error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK);
1613 if (error) 1610 if (error)
1614 return VN_INACTIVE_CACHE; 1611 return VN_INACTIVE_CACHE;
1615 /* Update linux inode block count after free above */
1616 vn_to_inode(vp)->i_blocks = XFS_FSB_TO_BB(mp,
1617 ip->i_d.di_nblocks + ip->i_delayed_blks);
1618 } 1612 }
1619 goto out; 1613 goto out;
1620 } 1614 }