On Thu, Mar 18, 2010 at 4:45 AM, Josef Bacik <josef@xxxxxxxxxx> wrote: > If the amount of free space left in a device is less than what we think should > be the minimum size, just ignore the minimum size and use the amount we have. I > ran into this running tests on a 600mb volume, the chunk allocator wouldn't let > me allocate the last 52mb of the disk for data because we want to have at least > 64mb chunks for data. This patch fixes that problem. Thanks, > > Signed-off-by: Josef Bacik <josef@xxxxxxxxxx> > > diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c > index 9df8e3f..1c5b5ba 100644 > --- a/fs/btrfs/volumes.c > +++ b/fs/btrfs/volumes.c > @@ -2244,8 +2244,10 @@ again: > 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; I encountered an Oops caused by 'calc_size == 0'. It's likely introduced by this change. (calc_size can be zero after calling do_div) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
