From 976f12c50120637410f30c17f8fbfcd5a49ed8fd Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 9 Aug 2009 15:20:46 +0100 Subject: [scsi] Generalise iscsi_detached_command() to scsi_detached_command() --- src/drivers/block/scsi.c | 12 ++++++++++++ src/include/gpxe/scsi.h | 2 ++ src/net/tcp/iscsi.c | 7 +------ 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 @@ -44,6 +44,18 @@ block_to_scsi ( struct block_device *blockdev ) { return container_of ( blockdev, struct scsi_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 * 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; } -- cgit v1.2.3-55-g7522