On Thu, May 30, 2019 at 08:03:48PM +0800, Qu Wenruo wrote:
> >> @@ -112,6 +112,7 @@ static int check_extent_data_item(struct extent_buffer *leaf,
> >> struct btrfs_file_extent_item *fi;
> >> u32 sectorsize = fs_info->sectorsize;
> >> u32 item_size = btrfs_item_size_nr(leaf, slot);
> >> + u64 extent_end;
> >>
> >> if (!IS_ALIGNED(key->offset, sectorsize)) {
> >> file_extent_err(leaf, slot,
> >> @@ -186,6 +187,14 @@ static int check_extent_data_item(struct extent_buffer *leaf,
> >> CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) ||
> >> CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize))
> >> return -EUCLEAN;
> >> + /* Catch extent end overflow case */
> >> + if (check_add_overflow(btrfs_file_extent_num_bytes(leaf, fi),
> >> + key->offset, &extent_end)) {
> >> + file_extent_err(leaf, slot,
> >> + "extent end overflow, have file offset %llu extent num bytes %llu",
> >> + key->offset,
> >> + btrfs_file_extent_num_bytes(leaf, fi));
> >
> > Isn't this missing
> >
> > return -EUCLEAN;
>
> Oh, my bad.
>
> Would you mind to fold that return line?
Udated and added to misc-next.