[lustre-devel] [PATCH 20/22] lustre: lov_obd: convert list_for_each_entry_safe() to while(!list_empty())

James Simmons jsimmons at infradead.org
Wed Aug 1 20:09:55 PDT 2018


> These loops are removing all elements from a list.
> So using while(!list_empty()) makes the intent clearer.

Reviewed-by: James Simmons <jsimmons at infradead.org>
 
> Signed-off-by: NeilBrown <neilb at suse.com>
> ---
>  drivers/staging/lustre/lustre/lov/lov_obd.c |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lustre/lov/lov_obd.c b/drivers/staging/lustre/lustre/lov/lov_obd.c
> index ee0898cbd9c9..0dd471cfe9a1 100644
> --- a/drivers/staging/lustre/lustre/lov/lov_obd.c
> +++ b/drivers/staging/lustre/lustre/lov/lov_obd.c
> @@ -83,7 +83,7 @@ static void lov_putref(struct obd_device *obd)
>  	if (atomic_dec_and_test(&lov->lov_refcount) && lov->lov_death_row) {
>  		LIST_HEAD(kill);
>  		int i;
> -		struct lov_tgt_desc *tgt, *n;
> +		struct lov_tgt_desc *tgt;
>  
>  		CDEBUG(D_CONFIG, "destroying %d lov targets\n",
>  		       lov->lov_death_row);
> @@ -103,7 +103,8 @@ static void lov_putref(struct obd_device *obd)
>  		}
>  		mutex_unlock(&lov->lov_lock);
>  
> -		list_for_each_entry_safe(tgt, n, &kill, ltd_kill) {
> +		while (!list_empty(&kill)) {
> +			tgt = list_first_entry(&kill, struct lov_tgt_desc, ltd_kill);
>  			list_del(&tgt->ltd_kill);
>  			/* Disconnect */
>  			__lov_del_obd(obd, tgt);
> 
> 
> 


More information about the lustre-devel mailing list