staging: lustre: libcfs: Use list_for_each_entry_safe
Doubly linked lists which are iterated using list_empty and list_entry macros have been replaced with list_for_each_entry_safe macro. This makes the iteration simpler and more readable. This patch replaces the while loop containing list_empty and list_entry with list_for_each_entry_safe. This was done with Coccinelle. @@ expression E1; identifier I1, I2; type T; iterator name list_for_each_entry_safe; @@ T *I1; + T *tmp; ... - while (list_empty(&E1) == 0) + list_for_each_entry_safe (I1, tmp, &E1, I2) { ...when != T *I1; - I1 = list_entry(E1.next, T, I2); ... } Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4a81ce53a6
commit
74cb7e3f65
|
@ -436,6 +436,7 @@ void
|
|||
cfs_wi_shutdown(void)
|
||||
{
|
||||
struct cfs_wi_sched *sched;
|
||||
struct cfs_wi_sched *temp;
|
||||
|
||||
spin_lock(&cfs_wi_data.wi_glock);
|
||||
cfs_wi_data.wi_stopping = 1;
|
||||
|
@ -458,9 +459,7 @@ cfs_wi_shutdown(void)
|
|||
}
|
||||
spin_unlock(&cfs_wi_data.wi_glock);
|
||||
}
|
||||
while (!list_empty(&cfs_wi_data.wi_scheds)) {
|
||||
sched = list_entry(cfs_wi_data.wi_scheds.next,
|
||||
struct cfs_wi_sched, ws_list);
|
||||
list_for_each_entry_safe(sched, temp, &cfs_wi_data.wi_scheds, ws_list) {
|
||||
list_del(&sched->ws_list);
|
||||
LIBCFS_FREE(sched, sizeof(*sched));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue