aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/scsi_transport_fc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index fdf3fa63905..358dff6732e 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -422,8 +422,7 @@ static int fc_host_setup(struct transport_container *tc, struct device *dev,
422 422
423 snprintf(fc_host->work_q_name, sizeof(fc_host->work_q_name), 423 snprintf(fc_host->work_q_name, sizeof(fc_host->work_q_name),
424 "fc_wq_%d", shost->host_no); 424 "fc_wq_%d", shost->host_no);
425 fc_host->work_q = create_singlethread_workqueue( 425 fc_host->work_q = alloc_workqueue(fc_host->work_q_name, 0, 0);
426 fc_host->work_q_name);
427 if (!fc_host->work_q) 426 if (!fc_host->work_q)
428 return -ENOMEM; 427 return -ENOMEM;
429 428
@@ -431,8 +430,8 @@ static int fc_host_setup(struct transport_container *tc, struct device *dev,
431 snprintf(fc_host->devloss_work_q_name, 430 snprintf(fc_host->devloss_work_q_name,
432 sizeof(fc_host->devloss_work_q_name), 431 sizeof(fc_host->devloss_work_q_name),
433 "fc_dl_%d", shost->host_no); 432 "fc_dl_%d", shost->host_no);
434 fc_host->devloss_work_q = create_singlethread_workqueue( 433 fc_host->devloss_work_q =
435 fc_host->devloss_work_q_name); 434 alloc_workqueue(fc_host->devloss_work_q_name, 0, 0);
436 if (!fc_host->devloss_work_q) { 435 if (!fc_host->devloss_work_q) {
437 destroy_workqueue(fc_host->work_q); 436 destroy_workqueue(fc_host->work_q);
438 fc_host->work_q = NULL; 437 fc_host->work_q = NULL;
@@ -2489,6 +2488,8 @@ fc_rport_final_delete(struct work_struct *work)
2489 unsigned long flags; 2488 unsigned long flags;
2490 int do_callback = 0; 2489 int do_callback = 0;
2491 2490
2491 fc_terminate_rport_io(rport);
2492
2492 /* 2493 /*
2493 * if a scan is pending, flush the SCSI Host work_q so that 2494 * if a scan is pending, flush the SCSI Host work_q so that
2494 * that we can reclaim the rport scan work element. 2495 * that we can reclaim the rport scan work element.
@@ -2496,8 +2497,6 @@ fc_rport_final_delete(struct work_struct *work)
2496 if (rport->flags & FC_RPORT_SCAN_PENDING) 2497 if (rport->flags & FC_RPORT_SCAN_PENDING)
2497 scsi_flush_work(shost); 2498 scsi_flush_work(shost);
2498 2499
2499 fc_terminate_rport_io(rport);
2500
2501 /* 2500 /*
2502 * Cancel any outstanding timers. These should really exist 2501 * Cancel any outstanding timers. These should really exist
2503 * only when rmmod'ing the LLDD and we're asking for 2502 * only when rmmod'ing the LLDD and we're asking for