Hi James, James Bottomley wrote: > On Tue, 2008-12-16 at 16:33 +0100, Hannes Reinecke wrote: >> scsi_device_online() is not just a negation of SDEV_OFFLINE, >> also devices in state SDEV_CANCEL and SDEV_DEL are >> actually offline. >> >> Signed-off-by: Hannes Reinecke >> --- >> include/scsi/scsi_device.h | 4 +++- >> 1 files changed, 3 insertions(+), 1 deletions(-) >> >> diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h >> index e96daf6..63b58d2 100644 >> --- a/include/scsi/scsi_device.h >> +++ b/include/scsi/scsi_device.h >> @@ -401,7 +401,9 @@ static inline unsigned int sdev_id(struct scsi_device *sdev) >> */ >> static inline int scsi_device_online(struct scsi_device *sdev) >> { >> - return sdev->sdev_state != SDEV_OFFLINE; >> + return (sdev->sdev_state != SDEV_OFFLINE && >> + sdev->sdev_state != SDEV_CANCEL && >> + sdev->sdev_state != SDEV_DEL); > > SDEV_DEL is OK. We can't do this for SDEV_CANCEL because that will > block post removal commands (notably cache flush). > You are correct as usual. Updated patch attached. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Markus Rex, HRB 16746 (AG Nürnberg)