diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index c6fc283164b8..4a0da2d7758b 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -6858,10 +6858,13 @@ next: goto not_found; if (start > found_key.offset) goto next; + + /* New extent overlaps with existing one */ em->start = start; em->orig_start = start; em->len = found_key.offset - start; - goto not_found_em; + em->block_start = EXTENT_MAP_HOLE; + goto insert; } btrfs_extent_item_to_extent_map(inode, path, item, @@ -6921,7 +6924,6 @@ not_found: em->start = start; em->orig_start = start; em->len = len; -not_found_em: em->block_start = EXTENT_MAP_HOLE; insert: btrfs_release_path(path);