diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index bf3bec3e4130e045a68b6e45ce1f1a30e1093713..9bf1f581b8728d2779c03fc6af0bc73b3ad98fce 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2244,8 +2244,10 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans, do_div(calc_size, stripe_len); calc_size *= stripe_len; } + /* we don't want tiny stripes */ - calc_size = max_t(u64, min_stripe_size, calc_size); + if (!looped) + calc_size = max_t(u64, min_stripe_size, calc_size); do_div(calc_size, stripe_len); calc_size *= stripe_len;