Re: [PATCH] RDS: Simplify code

From: Christophe JAILLET
Date: Sun Sep 04 2016 - 12:06:31 EST


Le 04/09/2016 à 14:20, Leon Romanovsky a écrit :
On Sat, Sep 03, 2016 at 07:33:29AM +0200, Christophe JAILLET wrote:
Calling 'list_splice' followed by 'INIT_LIST_HEAD' is equivalent to
'list_splice_init'.
It is not 100% accurate

list_splice(y, z)
INIT_LIST_HEAD(y)

==>

if (!list_empty(y))
__list_splice(y, z, z>next);
INIT_LIST_HEAD(y)

and not

if (!list_empty(y)) {
__list_splice(y, z, z>next);
INIT_LIST_HEAD(y)
}

as list_splice_init will do.

You are right but if you dig further you will see that calling INIT_LIST_HEAD on an empty list is a no-op (AFAIK).
And if this list was not already correctly initialized, then you would have some other troubles.

CJ