diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1bff92ad4744..7f9e0536db1a 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -3656,13 +3656,15 @@ static int btrfs_setattr(struct dentry *dentry, struct iattr *attr) | |||
3656 | if (err) | 3656 | if (err) |
3657 | return err; | 3657 | return err; |
3658 | } | 3658 | } |
3659 | attr->ia_valid &= ~ATTR_SIZE; | ||
3660 | 3659 | ||
3661 | if (attr->ia_valid) | 3660 | if (attr->ia_valid) { |
3662 | err = inode_setattr(inode, attr); | 3661 | setattr_copy(inode, attr); |
3662 | mark_inode_dirty(inode); | ||
3663 | |||
3664 | if (attr->ia_valid & ATTR_MODE) | ||
3665 | err = btrfs_acl_chmod(inode); | ||
3666 | } | ||
3663 | 3667 | ||
3664 | if (!err && ((attr->ia_valid & ATTR_MODE))) | ||
3665 | err = btrfs_acl_chmod(inode); | ||
3666 | return err; | 3668 | return err; |
3667 | } | 3669 | } |
3668 | 3670 | ||