Message ID | 1448961418-29013-4-git-send-email-hare@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 2015-12-01 at 10:16 +0100, Hannes Reinecke wrote: > Non-disk devices might support ALUA, but the firmware > implementation is untested and frequently broken. > As we're don't actually need it disable ALUA support > for non-disk device for now. > > Signed-off-by: Hannes Reinecke <hare@suse.de> > Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> > --- > drivers/scsi/device_handler/scsi_dh_alua.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c > b/drivers/scsi/device_handler/scsi_dh_alua.c > index cc2773b..7d01ef0 100644 > --- a/drivers/scsi/device_handler/scsi_dh_alua.c > +++ b/drivers/scsi/device_handler/scsi_dh_alua.c > @@ -320,6 +320,18 @@ static int alua_check_tpgs(struct scsi_device *sdev, > struct alua_dh_data *h) > { > int err = SCSI_DH_OK; > > + /* > + * ALUA support for non-disk devices is fraught with > + * difficulties, so disable it for now. > + */ > + if (sdev->type != TYPE_DISK) { > + h->tpgs = TPGS_MODE_NONE; > + sdev_printk(KERN_INFO, sdev, > + "%s: disable for non-disk devices\n", > + ALUA_DH_NAME); > + return SCSI_DH_DEV_UNSUPP; > + } > + > h->tpgs = scsi_device_tpgs(sdev); > switch (h->tpgs) { > case TPGS_MODE_EXPLICIT|TPGS_MODE_IMPLICIT: Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index cc2773b..7d01ef0 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c @@ -320,6 +320,18 @@ static int alua_check_tpgs(struct scsi_device *sdev, struct alua_dh_data *h) { int err = SCSI_DH_OK; + /* + * ALUA support for non-disk devices is fraught with + * difficulties, so disable it for now. + */ + if (sdev->type != TYPE_DISK) { + h->tpgs = TPGS_MODE_NONE; + sdev_printk(KERN_INFO, sdev, + "%s: disable for non-disk devices\n", + ALUA_DH_NAME); + return SCSI_DH_DEV_UNSUPP; + } + h->tpgs = scsi_device_tpgs(sdev); switch (h->tpgs) { case TPGS_MODE_EXPLICIT|TPGS_MODE_IMPLICIT: