diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-07-21 02:16:15 -0400 |
---|---|---|
committer | Niv Sardi <xaiki@debian.org> | 2008-07-28 02:59:39 -0400 |
commit | f13fae2d2a9372a5155d20bc9da4c14f02193277 (patch) | |
tree | 19bca1e8b3d5034ff84ad19e6a7640216ed3afaf /fs/xfs/linux-2.6/xfs_iops.c | |
parent | 0f285c8a1c4cacfd9f2aec077b06e2b537ee57ab (diff) |
[XFS] Remove vn_revalidate calls in xfs.
These days most of the attributes in struct inode are properly kept in
sync by XFS. This patch removes the need for vn_revalidate completely by:
- keeping inode.i_flags uptodate after any flags are updated in
xfs_ioctl_setattr
- keeping i_mode, i_uid and i_gid uptodate in xfs_setattr
SGI-PV: 984566
SGI-Modid: xfs-linux-melb:xfs-kern:31679a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_iops.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_iops.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 669bbdc20857..e88f51028086 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -650,21 +650,7 @@ xfs_vn_setattr( | |||
650 | struct dentry *dentry, | 650 | struct dentry *dentry, |
651 | struct iattr *iattr) | 651 | struct iattr *iattr) |
652 | { | 652 | { |
653 | struct inode *inode = dentry->d_inode; | 653 | return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0, NULL); |
654 | int error; | ||
655 | |||
656 | if (iattr->ia_valid & ATTR_ATIME) | ||
657 | inode->i_atime = iattr->ia_atime; | ||
658 | |||
659 | if (iattr->ia_valid & ATTR_MODE) { | ||
660 | if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) | ||
661 | inode->i_mode &= ~S_ISGID; | ||
662 | } | ||
663 | |||
664 | error = xfs_setattr(XFS_I(inode), iattr, 0, NULL); | ||
665 | if (likely(!error)) | ||
666 | vn_revalidate(vn_from_inode(inode)); | ||
667 | return -error; | ||
668 | } | 654 | } |
669 | 655 | ||
670 | /* | 656 | /* |