scsi: zfcp: Replace open-coded list move
authorJulian Wiedmann <jwi@linux.ibm.com>
Fri, 3 Jul 2020 13:20:02 +0000 (15:20 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 8 Jul 2020 04:50:55 +0000 (00:50 -0400)
Instead of manually moving each element of the unit and port lists into our
temporary on-stack lists, splice them over in one go.

Link: https://lore.kernel.org/r/cacb179f49ece50fd4dce119c61252d632cdc1d4.1593780621.git.bblock@linux.ibm.com
Reviewed-by: Steffen Maier <maier@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/s390/scsi/zfcp_ccw.c

index 49eda14..d9fd0a4 100644 (file)
@@ -124,13 +124,12 @@ static void zfcp_ccw_remove(struct ccw_device *cdev)
                return;
 
        write_lock_irq(&adapter->port_list_lock);
-       list_for_each_entry_safe(port, p, &adapter->port_list, list) {
+       list_for_each_entry(port, &adapter->port_list, list) {
                write_lock(&port->unit_list_lock);
-               list_for_each_entry_safe(unit, u, &port->unit_list, list)
-                       list_move(&unit->list, &unit_remove_lh);
+               list_splice_init(&port->unit_list, &unit_remove_lh);
                write_unlock(&port->unit_list_lock);
-               list_move(&port->list, &port_remove_lh);
        }
+       list_splice_init(&adapter->port_list, &port_remove_lh);
        write_unlock_irq(&adapter->port_list_lock);
        zfcp_ccw_adapter_put(adapter); /* put from zfcp_ccw_adapter_by_cdev */