diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 0058fb3c2561a46b5710a2dcad5354ad1cac5c49..0eeacd93e8e5e659c923fef2995c9bc755d8e64b 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -7102,6 +7102,10 @@ static long btrfs_fallocate(struct inode *inode, int mode, btrfs_wait_ordered_range(inode, alloc_start, alloc_end - alloc_start); mutex_lock(&inode->i_mutex); + ret = inode_newsize_ok(inode, alloc_end); + if (ret) + goto out; + if (alloc_start > inode->i_size) { ret = btrfs_cont_expand(inode, alloc_start); if (ret)