[SCSI] scsi_dh_rdac : decide whether to send mode select based on operating mode
Based on the operating modes, handler decides whether to send mode select or not. Purpose here is to reduce io-shipping as much as possible whenever there is an option. Signed-off-by: Babu Moger <babu.moger@lsi.com> Reviewed-by: Yanling Qi <yanling.qi@lsi.com> Reviewed-by: Sudhir Dachepalli <Sudhir.Dachepalli@lis.com> Reviewed-by: Somasundaram Krishnasamy <Somasundaram.Krishnasamy@lsi.com> Reviewed-by: Bob Stankey <Robert.Stankey@lsi.com> Reviewed-by: Vijay Chauhan <Vijay.Chauhan@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Родитель
1c3afc4234
Коммит
3425fbfe22
|
@ -670,12 +670,27 @@ static int rdac_activate(struct scsi_device *sdev,
|
|||
{
|
||||
struct rdac_dh_data *h = get_rdac_data(sdev);
|
||||
int err = SCSI_DH_OK;
|
||||
int act = 0;
|
||||
|
||||
err = check_ownership(sdev, h);
|
||||
if (err != SCSI_DH_OK)
|
||||
goto done;
|
||||
|
||||
if (h->lun_state == RDAC_LUN_UNOWNED) {
|
||||
switch (h->mode) {
|
||||
case RDAC_MODE:
|
||||
if (h->lun_state == RDAC_LUN_UNOWNED)
|
||||
act = 1;
|
||||
break;
|
||||
case RDAC_MODE_IOSHIP:
|
||||
if ((h->lun_state == RDAC_LUN_UNOWNED) &&
|
||||
(h->preferred == RDAC_PREFERRED))
|
||||
act = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (act) {
|
||||
err = queue_mode_select(sdev, fn, data);
|
||||
if (err == SCSI_DH_OK)
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче