diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c index 07e19e069c84..03d60db0c5a3 100644 --- a/fs/btrfs/reflink.c +++ b/fs/btrfs/reflink.c @@ -494,7 +494,8 @@ static int btrfs_clone(struct inode *src, struct inode *inode, &clone_info, &trans); if (ret) goto out; - } else if (type == BTRFS_FILE_EXTENT_INLINE) { + } else { + ASSERT(type == BTRFS_FILE_EXTENT_INLINE); /* * Inline extents always have to start at file offset 0 * and can never be bigger then the sector size. We can @@ -505,7 +506,8 @@ static int btrfs_clone(struct inode *src, struct inode *inode, */ ASSERT(key.offset == 0); ASSERT(datal <= fs_info->sectorsize); - if (WARN_ON(key.offset != 0) || + if (WARN_ON(type != BTRFS_FILE_EXTENT_INLINE) || + WARN_ON(key.offset != 0) || WARN_ON(datal > fs_info->sectorsize)) { ret = -EUCLEAN; goto out;