From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Mason Subject: Re: [PATCH] Btrfs: fix chunk allocate size calculation Date: Tue, 6 Apr 2010 07:13:58 -0400 Message-ID: <20100406111358.GA5218@think> References: <20100317204556.GA4409@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Cc: Josef Bacik , linux-btrfs@vger.kernel.org To: "Yan, Zheng " Return-path: In-Reply-To: List-ID: On Tue, Apr 06, 2010 at 03:54:27PM +0800, Yan, Zheng wrote: > On Thu, Mar 18, 2010 at 4:45 AM, Josef Bacik wrote= : > > If the amount of free space left in a device is less than what we t= hink should > > be the minimum size, just ignore the minimum size and use the amoun= t we have. =A0I > > 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 h= ave at least > > 64mb chunks for data. =A0This patch fixes that problem. =A0Thanks, > > > > Signed-off-by: Josef Bacik > > > > 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: > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0do_div(calc_size, stripe_len); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0calc_size *=3D stripe_len; > > =A0 =A0 =A0 =A0} > > + > > =A0 =A0 =A0 =A0/* we don't want tiny stripes */ > > - =A0 =A0 =A0 calc_size =3D max_t(u64, min_stripe_size, calc_size); > > + =A0 =A0 =A0 if (!looped) > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 calc_size =3D max_t(u64, min_stripe_s= ize, calc_size); > > > > =A0 =A0 =A0 =A0do_div(calc_size, stripe_len); > > =A0 =A0 =A0 =A0calc_size *=3D stripe_len; >=20 > I encountered an Oops caused by 'calc_size =3D=3D 0'. It's likely int= roduced > by this change. (calc_size can be zero after calling do_div) Ok, thanks will fix it up. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html