scsi_dh_emc: update 'access_state' field
authorHannes Reinecke <hare@suse.de>
Thu, 3 Mar 2016 06:54:11 +0000 (07:54 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 5 Mar 2016 22:20:33 +0000 (17:20 -0500)
Update the 'access_state' field of the SCSI device whenever the path
state changes.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/device_handler/scsi_dh_emc.c

index e6fb97c..375d818 100644 (file)
@@ -199,7 +199,12 @@ static int parse_sp_info_reply(struct scsi_device *sdev,
        csdev->lun_state = csdev->buffer[4];
        csdev->current_sp = csdev->buffer[8];
        csdev->port = csdev->buffer[7];
-
+       if (csdev->lun_state == CLARIION_LUN_OWNED)
+               sdev->access_state = SCSI_ACCESS_STATE_OPTIMAL;
+       else
+               sdev->access_state = SCSI_ACCESS_STATE_STANDBY;
+       if (csdev->default_sp == csdev->current_sp)
+               sdev->access_state |= SCSI_ACCESS_STATE_PREFERRED;
 out:
        return err;
 }