Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[cascardo/linux.git] / fs / gfs2 / inode.c
index e4da0ec..fe3f849 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);
        }
 
@@ -652,7 +656,7 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry,
        set_nlink(inode, S_ISDIR(mode) ? 2 : 1);
        inode->i_rdev = dev;
        inode->i_size = size;
-       inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+       inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
        gfs2_set_inode_blocks(inode, 1);
        munge_mode_uid_gid(dip, inode);
        check_and_update_goal(dip);
@@ -979,7 +983,7 @@ static int gfs2_link(struct dentry *old_dentry, struct inode *dir,
 
        gfs2_trans_add_meta(ip->i_gl, dibh);
        inc_nlink(&ip->i_inode);
-       ip->i_inode.i_ctime = CURRENT_TIME;
+       ip->i_inode.i_ctime = current_time(&ip->i_inode);
        ihold(inode);
        d_instantiate(dentry, inode);
        mark_inode_dirty(inode);
@@ -1063,7 +1067,7 @@ static int gfs2_unlink_inode(struct gfs2_inode *dip,
                return error;
 
        ip->i_entries = 0;
-       inode->i_ctime = CURRENT_TIME;
+       inode->i_ctime = current_time(inode);
        if (S_ISDIR(inode->i_mode))
                clear_nlink(inode);
        else
@@ -1326,7 +1330,7 @@ static int update_moved_ino(struct gfs2_inode *ip, struct gfs2_inode *ndip,
        error = gfs2_meta_inode_buffer(ip, &dibh);
        if (error)
                return error;
-       ip->i_inode.i_ctime = CURRENT_TIME;
+       ip->i_inode.i_ctime = current_time(&ip->i_inode);
        gfs2_trans_add_meta(ip->i_gl, dibh);
        gfs2_dinode_out(ip, dibh->b_data);
        brelse(dibh);
@@ -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;
 
@@ -2036,10 +2040,7 @@ const struct inode_operations gfs2_file_iops = {
        .permission = gfs2_permission,
        .setattr = gfs2_setattr,
        .getattr = gfs2_getattr,
-       .setxattr = generic_setxattr,
-       .getxattr = generic_getxattr,
        .listxattr = gfs2_listxattr,
-       .removexattr = generic_removexattr,
        .fiemap = gfs2_fiemap,
        .get_acl = gfs2_get_acl,
        .set_acl = gfs2_set_acl,
@@ -2054,14 +2055,11 @@ const struct inode_operations gfs2_dir_iops = {
        .mkdir = gfs2_mkdir,
        .rmdir = gfs2_unlink,
        .mknod = gfs2_mknod,
-       .rename2 = gfs2_rename2,
+       .rename = gfs2_rename2,
        .permission = gfs2_permission,
        .setattr = gfs2_setattr,
        .getattr = gfs2_getattr,
-       .setxattr = generic_setxattr,
-       .getxattr = generic_getxattr,
        .listxattr = gfs2_listxattr,
-       .removexattr = generic_removexattr,
        .fiemap = gfs2_fiemap,
        .get_acl = gfs2_get_acl,
        .set_acl = gfs2_set_acl,
@@ -2074,10 +2072,7 @@ const struct inode_operations gfs2_symlink_iops = {
        .permission = gfs2_permission,
        .setattr = gfs2_setattr,
        .getattr = gfs2_getattr,
-       .setxattr = generic_setxattr,
-       .getxattr = generic_getxattr,
        .listxattr = gfs2_listxattr,
-       .removexattr = generic_removexattr,
        .fiemap = gfs2_fiemap,
 };