]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/xfs/xfs_vnodeops.c
[XFS] Remove vn_revalidate calls in xfs.
[linux-2.6-omap-h63xx.git] / fs / xfs / xfs_vnodeops.c
index b792a121b1a72c3b512c0bfb622e6f610802e3e2..76a1166af8227ac0b45715986bcad98daa469c87 100644 (file)
@@ -83,6 +83,7 @@ xfs_setattr(
        cred_t                  *credp)
 {
        xfs_mount_t             *mp = ip->i_mount;
+       struct inode            *inode = XFS_ITOV(ip);
        int                     mask = iattr->ia_valid;
        xfs_trans_t             *tp;
        int                     code;
@@ -446,6 +447,9 @@ xfs_setattr(
                ip->i_d.di_mode &= S_IFMT;
                ip->i_d.di_mode |= iattr->ia_mode & ~S_IFMT;
 
+               inode->i_mode &= S_IFMT;
+               inode->i_mode |= iattr->ia_mode & ~S_IFMT;
+
                xfs_trans_log_inode (tp, ip, XFS_ILOG_CORE);
                timeflags |= XFS_ICHGTIME_CHG;
        }
@@ -481,6 +485,7 @@ xfs_setattr(
                                                        &ip->i_udquot, udqp);
                        }
                        ip->i_d.di_uid = uid;
+                       inode->i_uid = uid;
                }
                if (igid != gid) {
                        if (XFS_IS_GQUOTA_ON(mp)) {
@@ -491,6 +496,7 @@ xfs_setattr(
                                                        &ip->i_gdquot, gdqp);
                        }
                        ip->i_d.di_gid = gid;
+                       inode->i_gid = gid;
                }
 
                xfs_trans_log_inode (tp, ip, XFS_ILOG_CORE);
@@ -503,12 +509,14 @@ xfs_setattr(
         */
        if (mask & (ATTR_ATIME|ATTR_MTIME)) {
                if (mask & ATTR_ATIME) {
+                       inode->i_atime = iattr->ia_atime;
                        ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec;
                        ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec;
                        ip->i_update_core = 1;
                        timeflags &= ~XFS_ICHGTIME_ACC;
                }
                if (mask & ATTR_MTIME) {
+                       inode->i_mtime = iattr->ia_mtime;
                        ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec;
                        ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec;
                        timeflags &= ~XFS_ICHGTIME_MOD;
@@ -524,6 +532,7 @@ xfs_setattr(
         */
 
        if ((flags & XFS_ATTR_DMI) && (mask & ATTR_CTIME)) {
+               inode->i_ctime = iattr->ia_ctime;
                ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec;
                ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec;
                ip->i_update_core = 1;