From fe81cb6264155972c55384caebd8035c917e521c Mon Sep 17 00:00:00 2001 From: "Mr. NeilBrown" Date: Mon, 23 Jan 2023 16:33:34 -0500 Subject: [PATCH] LU-6142 lustre: obdclass: simplify cl_lock_fini() Using list_first_entry_or_null() makes this (slightly) simpler. Linux-commit: 988b9ea9129bc24baf36ee421feb823285f234c4 Change-Id: Ic2fe2bb58b67781c8bc7b4e81cbf6b61dcaa56fb Signed-off-by: Mr. NeilBrown Signed-off-by: Greg Kroah-Hartman Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49736 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Arshad Hussain Reviewed-by: Jian Yu Reviewed-by: Shaun Tancheff Reviewed-by: Oleg Drokin --- lustre/obdclass/cl_lock.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lustre/obdclass/cl_lock.c b/lustre/obdclass/cl_lock.c index 7750ae9..afd1f14 100644 --- a/lustre/obdclass/cl_lock.c +++ b/lustre/obdclass/cl_lock.c @@ -79,15 +79,14 @@ EXPORT_SYMBOL(cl_lock_slice_add); void cl_lock_fini(const struct lu_env *env, struct cl_lock *lock) { - ENTRY; + struct cl_lock_slice *slice; + ENTRY; cl_lock_trace(D_DLMTRACE, env, "destroy lock", lock); - while (!list_empty(&lock->cll_layers)) { - struct cl_lock_slice *slice; - - slice = list_entry(lock->cll_layers.next, - struct cl_lock_slice, cls_linkage); + while ((slice = list_first_entry_or_null(&lock->cll_layers, + struct cl_lock_slice, + cls_linkage)) != NULL) { list_del_init(lock->cll_layers.next); slice->cls_ops->clo_fini(env, slice); } -- 1.8.3.1