Re: [PATCH 4/7] udf: replace loops coded with goto to real loops

From: Jan Kara
Date: Tue Jan 08 2008 - 05:17:44 EST


On Mon 07-01-08 22:10:01, Marcin Slusarz wrote:
> On Mon, Jan 07, 2008 at 03:48:21PM +0100, Jan Kara wrote:
> > On Sun 06-01-08 02:21:50, marcin.slusarz@xxxxxxxxx wrote:
> > > Signed-off-by: Marcin Slusarz <marcin.slusarz@xxxxxxxxx>
> > I'm not sure if this improves readability in general. If the code is
> > really a loop in nature, then we should code it using do {} while but in
> > case we loop back just in case of some error (as seems to be the case in
> > udf_bitmap_new_block()), then IMHO goto is more explanative. So at least
> > that one case I'd leave as is.
> Why do you think it's an error?
There is code:

if (!udf_clear_bit(bit, bh->b_data)) {
udf_debug("bit already cleared for block %d\n", bit);
goto repeat;
}
Now if this happens, it's a bug AFAICS because we have been searching for
a free block and we hold s_alloc_mutex and hence we should not race with
any other allocation.

Honza
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/