Whamcloud - gitweb
LU-6142 lustre: obdclass: simplify cl_lock_fini() 36/49736/2
authorMr. NeilBrown <neilb@suse.de>
Mon, 23 Jan 2023 21:33:34 +0000 (16:33 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 3 Feb 2023 06:49:01 +0000 (06:49 +0000)
Using list_first_entry_or_null() makes this (slightly)
simpler.

Linux-commit: 988b9ea9129bc24baf36ee421feb823285f234c4

Change-Id: Ic2fe2bb58b67781c8bc7b4e81cbf6b61dcaa56fb
Signed-off-by: Mr. NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49736
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/cl_lock.c

index 7750ae9..afd1f14 100644 (file)
@@ -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);
        }