diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index f914b5db7ff16d33d7a75cb40db1278718e22053..1ae45bd9d27d51d15a511b85ad5a520e54c1dd65 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -983,7 +983,8 @@ static bool defrag_check_next_extent(struct inode *inode, struct extent_map *em) return false; next = defrag_lookup_extent(inode, em->start + em->len); - if (!next || next->block_start >= EXTENT_MAP_LAST_BYTE) + if (!next || next->block_start >= EXTENT_MAP_LAST_BYTE || + (em->block_start + em->block_len == next->block_start)) ret = false; free_extent_map(next);