[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <16e45402a18.c7fb3dc01505.2507377017571315195@mykernel.net>
Date: Thu, 07 Nov 2019 17:44:23 +0800
From: Chengguang Xu <cgxu519@...ernel.net>
To: "Jan Kara" <jack@...e.cz>
Cc: "jack" <jack@...e.com>, "linux-ext4" <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH 2/5] ext2: code cleanup by calling
ext2_group_last_block_no()
---- 在 星期四, 2019-11-07 17:21:17 Jan Kara <jack@...e.cz> 撰写 ----
> On Thu 07-11-19 10:54:43, Chengguang Xu wrote:
> > ---- 在 星期三, 2019-11-06 23:42:36 Jan Kara <jack@...e.cz> 撰写 ----
> > > On Mon 04-11-19 19:40:33, Chengguang Xu wrote:
> > > > Call common helper ext2_group_last_block_no() to
> > > > calculate group last block number.
> > > >
> > > > Signed-off-by: Chengguang Xu <cgxu519@...ernel.net>
> > >
> > > Thanks for the patch! I've applied it (as well as 1/5) and added attached
> > > simplification on top.
> > >
> >
> > In ext2_try_to_allocate()
> >
> > + if (my_rsv->_rsv_end < group_last_block)
> > + end = my_rsv->_rsv_end - group_first_block + 1;
> > + if (grp_goal < start || grp_goal > end)
> >
> > Based on original code, shouldn't it be if (grp_goal < start || grp_goal
> > >=end) ?
>
> Hum, that's a good point. The original code actually had an off-by-one bug
> because 'end' is really the last block that can be used so grp_goal == end
> still makes sense. And my cleanup fixed it. Now looking at the code in
> ext2_try_to_allocate() we also have a similar bug in the loop allocating
> blocks. There we can also go upto 'end' inclusive. Added a patch to fix
> that. Thanks for pointing me to this!
>
Doesn't it depend on what starting number for grp_block inside block group?
if it starts from 0, is the end number block still available for allocation?
Thanks,
Chengguang
Powered by blists - more mailing lists