diff options
Diffstat (limited to 'drivers/scsi/device_handler/scsi_dh_alua.c')
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_alua.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index 6648ffbb121a..68adb8955d2d 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c | |||
@@ -712,6 +712,10 @@ static int alua_set_params(struct scsi_device *sdev, const char *params) | |||
712 | return result; | 712 | return result; |
713 | } | 713 | } |
714 | 714 | ||
715 | static uint optimize_stpg; | ||
716 | module_param(optimize_stpg, uint, S_IRUGO|S_IWUSR); | ||
717 | MODULE_PARM_DESC(optimize_stpg, "Allow use of a non-optimized path, rather than sending a STPG, when implicit TPGS is supported (0=No,1=Yes). Default is 0."); | ||
718 | |||
715 | /* | 719 | /* |
716 | * alua_activate - activate a path | 720 | * alua_activate - activate a path |
717 | * @sdev: device on the path to be activated | 721 | * @sdev: device on the path to be activated |
@@ -733,6 +737,9 @@ static int alua_activate(struct scsi_device *sdev, | |||
733 | if (err != SCSI_DH_OK) | 737 | if (err != SCSI_DH_OK) |
734 | goto out; | 738 | goto out; |
735 | 739 | ||
740 | if (optimize_stpg) | ||
741 | h->flags |= ALUA_OPTIMIZE_STPG; | ||
742 | |||
736 | if (h->tpgs & TPGS_MODE_EXPLICIT) { | 743 | if (h->tpgs & TPGS_MODE_EXPLICIT) { |
737 | switch (h->state) { | 744 | switch (h->state) { |
738 | case TPGS_STATE_NONOPTIMIZED: | 745 | case TPGS_STATE_NONOPTIMIZED: |