• C
    [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock · 6071d7ec
    Christof Schmitt 提交于
    The testcase
    # chchp -v 0 0.da && sleep 59 && chchp -v 1 0.da
    results in this deadlock situation:
    
    STACK TRACE FOR TASK: 0x7e9a2048 (zfcperp0.0.c613)
    0 schedule+816 [0x356b3c]
    1 schedule_timeout+172 [0x357340]
    2 wait_for_common+192 [0x3565fc]
    3 flush_cpu_workqueue+116 [0x52af0]
    4 flush_workqueue+116 [0x533b8]
    5 fc_remote_port_add+64 [0x1c83ec]
    6 zfcp_erp_thread+4534 [0x26585a]
    7 kernel_thread_starter+6 [0x195d2]
    
    STACK TRACE FOR TASK: 0x7f8ec048 (fc_wq_0)
    0 schedule+816 [0x356b3c]
    1 zfcp_erp_wait+104 [0x264568]
    2 zfcp_scsi_slave_destroy+64 [0x261b24]
    3 __scsi_remove_device+154 [0x1c24ba]
    4 scsi_remove_device+62 [0x1c2512]
    5 __scsi_remove_target+198 [0x1c25ea]
    6 __remove_child+58 [0x1c26d6]
    7 device_for_each_child+66 [0x1ab566]
    8 scsi_remove_target+98 [0x1c268a]
    9 run_workqueue+200 [0x5272c]
    10 worker_thread+146 [0x52882]
    11 kthread+140 [0x58360]
    12 kernel_thread_starter+6 [0x195d2]
    
    Remove the zfcp_erp_wait call that is not required here to prevent the
    deadlock situation.
    Signed-off-by: NChristof Schmitt <christof.schmitt@de.ibm.com>
    Signed-off-by: NMartin Peschke <mp3@de.ibm.com>
    Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
    6071d7ec
zfcp_scsi.c 23.7 KB