[SCSI] zfcp: fix erp list usage without using locks
authorSwen Schillig <swen@vnet.ibm.com>
Wed, 1 Oct 2008 10:42:24 +0000 (12:42 +0200)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 3 Oct 2008 17:11:56 +0000 (12:11 -0500)
The zfcp_erp_thread was using the nolock version of the dbf function.
This resulted in a list access while other tasks could modifying the
list. The symptom was an erp thread running at 100% CPU and never
returning from the dbf function.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/s390/scsi/zfcp_erp.c

index 8c11741..4539530 100644 (file)
@@ -1395,9 +1395,9 @@ static int zfcp_erp_thread(void *data)
                                zfcp_erp_wakeup(adapter);
                }
 
-               zfcp_rec_dbf_event_thread(4, adapter);
+               zfcp_rec_dbf_event_thread_lock(4, adapter);
                down_interruptible(&adapter->erp_ready_sem);
-               zfcp_rec_dbf_event_thread(5, adapter);
+               zfcp_rec_dbf_event_thread_lock(5, adapter);
        }
 
        atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status);