diff options
-rw-r--r-- | fs/btrfs/inode.c | 3 | ||||
-rw-r--r-- | fs/btrfs/ioctl.c | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index e95b1f90a1f6..67ed24ae86bb 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -4818,8 +4818,7 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, | |||
4818 | if (S_ISREG(mode)) { | 4818 | if (S_ISREG(mode)) { |
4819 | if (btrfs_test_opt(root, NODATASUM)) | 4819 | if (btrfs_test_opt(root, NODATASUM)) |
4820 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; | 4820 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; |
4821 | if (btrfs_test_opt(root, NODATACOW) || | 4821 | if (btrfs_test_opt(root, NODATACOW)) |
4822 | (BTRFS_I(dir)->flags & BTRFS_INODE_NODATACOW)) | ||
4823 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; | 4822 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; |
4824 | } | 4823 | } |
4825 | 4824 | ||
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index d4608ab72b79..7624212ae926 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -141,8 +141,11 @@ void btrfs_inherit_iflags(struct inode *inode, struct inode *dir) | |||
141 | BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; | 141 | BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; |
142 | } | 142 | } |
143 | 143 | ||
144 | if (flags & BTRFS_INODE_NODATACOW) | 144 | if (flags & BTRFS_INODE_NODATACOW) { |
145 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; | 145 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATACOW; |
146 | if (S_ISREG(inode->i_mode)) | ||
147 | BTRFS_I(inode)->flags |= BTRFS_INODE_NODATASUM; | ||
148 | } | ||
146 | 149 | ||
147 | btrfs_update_iflags(inode); | 150 | btrfs_update_iflags(inode); |
148 | } | 151 | } |