summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2009-08-09 16:20:46 +0200
committerMichael Brown2009-08-10 20:29:40 +0200
commit976f12c50120637410f30c17f8fbfcd5a49ed8fd (patch)
tree5eb97a35b019f02defae361a6611deffc3413b76
parent[process] Make it safe to call process_add() multiple times (diff)
downloadipxe-976f12c50120637410f30c17f8fbfcd5a49ed8fd.tar.gz
ipxe-976f12c50120637410f30c17f8fbfcd5a49ed8fd.tar.xz
ipxe-976f12c50120637410f30c17f8fbfcd5a49ed8fd.zip
[scsi] Generalise iscsi_detached_command() to scsi_detached_command()
-rw-r--r--src/drivers/block/scsi.c12
-rw-r--r--src/include/gpxe/scsi.h2
-rw-r--r--src/net/tcp/iscsi.c7
3 files changed, 15 insertions, 6 deletions
diff --git a/src/drivers/block/scsi.c b/src/drivers/block/scsi.c
index fe6dcd8c..19f99f82 100644
--- a/src/drivers/block/scsi.c
+++ b/src/drivers/block/scsi.c
@@ -45,6 +45,18 @@ block_to_scsi ( struct block_device *blockdev ) {
}
/**
+ * Handle SCSI command with no backing device
+ *
+ * @v scsi SCSI device
+ * @v command SCSI command
+ * @ret rc Return status code
+ */
+int scsi_detached_command ( struct scsi_device *scsi __unused,
+ struct scsi_command *command __unused ) {
+ return -ENODEV;
+}
+
+/**
* Issue SCSI command
*
* @v scsi SCSI device
diff --git a/src/include/gpxe/scsi.h b/src/include/gpxe/scsi.h
index fbdde8dc..b8866234 100644
--- a/src/include/gpxe/scsi.h
+++ b/src/include/gpxe/scsi.h
@@ -270,6 +270,8 @@ struct scsi_device {
struct refcnt *backend;
};
+extern int scsi_detached_command ( struct scsi_device *scsi,
+ struct scsi_command *command );
extern int init_scsidev ( struct scsi_device *scsi );
#endif /* _GPXE_SCSI_H */
diff --git a/src/net/tcp/iscsi.c b/src/net/tcp/iscsi.c
index 0f7b0de5..973718e0 100644
--- a/src/net/tcp/iscsi.c
+++ b/src/net/tcp/iscsi.c
@@ -1571,11 +1571,6 @@ static int iscsi_command ( struct scsi_device *scsi,
return 0;
}
-static int iscsi_detached_command ( struct scsi_device *scsi __unused,
- struct scsi_command *command __unused ) {
- return -ENODEV;
-}
-
/**
* Shut down iSCSI interface
*
@@ -1588,7 +1583,7 @@ void iscsi_detach ( struct scsi_device *scsi ) {
xfer_nullify ( &iscsi->socket );
iscsi_close_connection ( iscsi, 0 );
process_del ( &iscsi->process );
- scsi->command = iscsi_detached_command;
+ scsi->command = scsi_detached_command;
ref_put ( scsi->backend );
scsi->backend = NULL;
}