Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[cascardo/linux.git] / fs / gfs2 / inode.c
index e0621ca..7efd1d1 100644 (file)
@@ -187,6 +187,10 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
                }
 
                gfs2_set_iop(inode);
+
+               inode->i_atime.tv_sec = 0;
+               inode->i_atime.tv_nsec = 0;
+
                unlock_new_inode(inode);
        }
 
@@ -1800,7 +1804,7 @@ int gfs2_permission(struct inode *inode, int mask)
        }
 
        if ((mask & MAY_WRITE) && IS_IMMUTABLE(inode))
-               error = -EACCES;
+               error = -EPERM;
        else
                error = generic_permission(inode, mask);
        if (gfs2_holder_initialized(&i_gh))
@@ -1932,7 +1936,7 @@ static int gfs2_setattr(struct dentry *dentry, struct iattr *attr)
        if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                goto out;
 
-       error = inode_change_ok(inode, attr);
+       error = setattr_prepare(dentry, attr);
        if (error)
                goto out;