[SCSI] scsi_dh_alua: Store the PREF bit from RTPG
PREF bit indicates preferred target port group for accessing a logical unit. This bit is used to optimize the STPG command handling. Signed-off-by: Babu Moger <babu.moger@netapp.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Родитель
4335d092a1
Коммит
dcd3a754b8
|
@ -63,6 +63,7 @@ struct alua_dh_data {
|
|||
int rel_port;
|
||||
int tpgs;
|
||||
int state;
|
||||
int pref;
|
||||
unsigned flags; /* used for optimizing STPG */
|
||||
unsigned char inq[ALUA_INQUIRY_SIZE];
|
||||
unsigned char *buff;
|
||||
|
@ -558,14 +559,16 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_dh_data *h)
|
|||
for (k = 4, ucp = h->buff + 4; k < len; k += off, ucp += off) {
|
||||
if (h->group_id == (ucp[2] << 8) + ucp[3]) {
|
||||
h->state = ucp[0] & 0x0f;
|
||||
h->pref = ucp[0] >> 7;
|
||||
valid_states = ucp[1];
|
||||
}
|
||||
off = 8 + (ucp[7] * 4);
|
||||
}
|
||||
|
||||
sdev_printk(KERN_INFO, sdev,
|
||||
"%s: port group %02x state %c supports %c%c%c%c%c%c%c\n",
|
||||
"%s: port group %02x state %c %s supports %c%c%c%c%c%c%c\n",
|
||||
ALUA_DH_NAME, h->group_id, print_alua_state(h->state),
|
||||
h->pref ? "preferred" : "non-preferred",
|
||||
valid_states&TPGS_SUPPORT_TRANSITION?'T':'t',
|
||||
valid_states&TPGS_SUPPORT_OFFLINE?'O':'o',
|
||||
valid_states&TPGS_SUPPORT_LBA_DEPENDENT?'L':'l',
|
||||
|
|
Загрузка…
Ссылка в новой задаче