Re: [PATCH 02/10] rwsem: fully separate code pathes to wake writers vs readers

From: David Howells
Date: Wed May 19 2010 - 08:05:28 EST


Michel Lespinasse <walken@xxxxxxxxxx> wrote:

> + readers_only:
> + if (!downgrading) {
> +

There's an unnecessary blank line here.

> + /* if we came through an up_xxxx() call, we only only wake
> + * someone up if we can transition the active part of the
> + * count from 0 -> 1
> + */
> + try_again_read:

I hate code that jumps into braced blocks with goto. Would it be possible for
you to do:

readers_only:
if (downgrading)
goto wake_readers;
...
wake_readers:
/* Grant an infinite number of read locks to the readers at the front
...

instead, please?

Also, since the labels 'undo' and 'try_again' are now specific to the writer
path, can you label them 'undo_write' and 'try_again_write' just to make it
obvious?

Other than that, no particular objections to this patch.

David
--
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/