On Fri, Oct 12, 2018 at 03:32:33PM -0400, Josef Bacik wrote: > From: Josef Bacik <jba...@fb.com> > > We can't use entry->bytes if our entry is a bitmap entry, we need to use > entry->max_extent_size in that case. Fix up all the logic to make this > consistent. > > Signed-off-by: Josef Bacik <jba...@fb.com> > --- > fs/btrfs/free-space-cache.c | 30 ++++++++++++++++++++---------- > 1 file changed, 20 insertions(+), 10 deletions(-) > > diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c > index e077ad3b4549..2dd773e96530 100644 > --- a/fs/btrfs/free-space-cache.c > +++ b/fs/btrfs/free-space-cache.c > @@ -1770,6 +1770,13 @@ static int search_bitmap(struct btrfs_free_space_ctl > *ctl, > return -1; > } > > +static inline u64 get_max_extent_size(struct btrfs_free_space *entry) > +{ > + if (entry->bitmap) > + return entry->max_extent_size; > + return entry->bytes; > +}
> + *max_extent_size = max(get_max_extent_size(entry), > + *max_extent_size); Looks reasonable. Reviewed-by: David Sterba <dste...@suse.com>