staging: lustre: lnet: Use list_for_each_entry_safe
PATCH v3 1/1 staging: lustre: lnet: 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 <[email protected]>
---
Changes in v3:
-Changed commit message
-Changed subject to list_for_each_entry_safe instead of
list_for_each_entry
drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +2 -3
@@ -2354,13 +2354,12 @@ static inline void ksocknal_flush_stale_txs(ksock_peer_t *peer) {ksock_tx_t *tx; +ksock_tx_t *tmp;LIST_HEAD (stale_txs);write_lock_bh (&ksocknal_data.ksnd_global_lock); -while (!list_empty (&peer->ksnp_tx_queue)) { - tx =list_entry (peer->ksnp_tx_queue.next, ksock_tx_t, tx_list); - +list_for_each_entry_safe (tx, tmp, &peer->ksnp_tx_queue, tx_list) {if (!cfs_time_aftereq (cfs_time_current (), tx->tx_deadline))break ;
--
2.1.4