From: Chris Mason Date: Tue, 6 Apr 2010 13:37:47 +0000 (-0400) Subject: Btrfs: make sure the chunk allocator doesn't create zero length chunks X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=9f680ce04ea19dabbbafe01b57b61930a9b70741;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git Btrfs: make sure the chunk allocator doesn't create zero length chunks A recent commit allowed for smaller chunks to be created, but didn't make sure they were always bigger than a stripe. After some divides, this led to zero length stripes. Signed-off-by: Chris Mason --- diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 9bf1f581b872..b584e9a2add2 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2249,6 +2249,12 @@ again: if (!looped) calc_size = max_t(u64, min_stripe_size, calc_size); + /* + * we're about to do_div by the stripe_len so lets make sure + * we end up with something bigger than a stripe + */ + calc_size = max_t(u64, calc_size, stripe_len * 4); + do_div(calc_size, stripe_len); calc_size *= stripe_len;