aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/scsi_error.c12
-rw-r--r--drivers/scsi/scsi_priv.h5
2 files changed, 12 insertions, 5 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 2ecb6ff42444..8e5011d13a18 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -672,8 +672,8 @@ EXPORT_SYMBOL(scsi_eh_finish_cmd);
672 * XXX: Long term this code should go away, but that needs an audit of 672 * XXX: Long term this code should go away, but that needs an audit of
673 * all LLDDs first. 673 * all LLDDs first.
674 **/ 674 **/
675static int scsi_eh_get_sense(struct list_head *work_q, 675int scsi_eh_get_sense(struct list_head *work_q,
676 struct list_head *done_q) 676 struct list_head *done_q)
677{ 677{
678 struct scsi_cmnd *scmd, *next; 678 struct scsi_cmnd *scmd, *next;
679 int rtn; 679 int rtn;
@@ -715,6 +715,7 @@ static int scsi_eh_get_sense(struct list_head *work_q,
715 715
716 return list_empty(work_q); 716 return list_empty(work_q);
717} 717}
718EXPORT_SYMBOL_GPL(scsi_eh_get_sense);
718 719
719/** 720/**
720 * scsi_try_to_abort_cmd - Ask host to abort a running command. 721 * scsi_try_to_abort_cmd - Ask host to abort a running command.
@@ -1411,9 +1412,9 @@ static void scsi_restart_operations(struct Scsi_Host *shost)
1411 * @eh_done_q: list_head for processed commands. 1412 * @eh_done_q: list_head for processed commands.
1412 * 1413 *
1413 **/ 1414 **/
1414static void scsi_eh_ready_devs(struct Scsi_Host *shost, 1415void scsi_eh_ready_devs(struct Scsi_Host *shost,
1415 struct list_head *work_q, 1416 struct list_head *work_q,
1416 struct list_head *done_q) 1417 struct list_head *done_q)
1417{ 1418{
1418 if (!scsi_eh_stu(shost, work_q, done_q)) 1419 if (!scsi_eh_stu(shost, work_q, done_q))
1419 if (!scsi_eh_bus_device_reset(shost, work_q, done_q)) 1420 if (!scsi_eh_bus_device_reset(shost, work_q, done_q))
@@ -1421,6 +1422,7 @@ static void scsi_eh_ready_devs(struct Scsi_Host *shost,
1421 if (!scsi_eh_host_reset(work_q, done_q)) 1422 if (!scsi_eh_host_reset(work_q, done_q))
1422 scsi_eh_offline_sdevs(work_q, done_q); 1423 scsi_eh_offline_sdevs(work_q, done_q);
1423} 1424}
1425EXPORT_SYMBOL_GPL(scsi_eh_ready_devs);
1424 1426
1425/** 1427/**
1426 * scsi_eh_flush_done_q - finish processed commands or retry them. 1428 * scsi_eh_flush_done_q - finish processed commands or retry them.
diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h
index d4faa19609d9..ee8efe849bf4 100644
--- a/drivers/scsi/scsi_priv.h
+++ b/drivers/scsi/scsi_priv.h
@@ -57,6 +57,11 @@ extern int scsi_error_handler(void *host);
57extern int scsi_decide_disposition(struct scsi_cmnd *cmd); 57extern int scsi_decide_disposition(struct scsi_cmnd *cmd);
58extern void scsi_eh_wakeup(struct Scsi_Host *shost); 58extern void scsi_eh_wakeup(struct Scsi_Host *shost);
59extern int scsi_eh_scmd_add(struct scsi_cmnd *, int); 59extern int scsi_eh_scmd_add(struct scsi_cmnd *, int);
60void scsi_eh_ready_devs(struct Scsi_Host *shost,
61 struct list_head *work_q,
62 struct list_head *done_q);
63int scsi_eh_get_sense(struct list_head *work_q,
64 struct list_head *done_q);
60 65
61/* scsi_lib.c */ 66/* scsi_lib.c */
62extern int scsi_maybe_unblock_host(struct scsi_device *sdev); 67extern int scsi_maybe_unblock_host(struct scsi_device *sdev);