Skip to content

Commit 5115fc7

Browse files
hreineckemartinkpetersen
authored andcommitted
scsi_dh_alua: use common definitions for ALUA state
scsi_proto.h now contains definitions for the ALUA state, so we don't have to carry them in the device handler. 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: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent 77c9df9 commit 5115fc7

File tree

1 file changed

+25
-33
lines changed

1 file changed

+25
-33
lines changed

drivers/scsi/device_handler/scsi_dh_alua.c

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,6 @@
3131
#define ALUA_DH_NAME "alua"
3232
#define ALUA_DH_VER "2.0"
3333

34-
#define TPGS_STATE_OPTIMIZED 0x0
35-
#define TPGS_STATE_NONOPTIMIZED 0x1
36-
#define TPGS_STATE_STANDBY 0x2
37-
#define TPGS_STATE_UNAVAILABLE 0x3
38-
#define TPGS_STATE_LBA_DEPENDENT 0x4
39-
#define TPGS_STATE_OFFLINE 0xe
40-
#define TPGS_STATE_TRANSITIONING 0xf
41-
4234
#define TPGS_SUPPORT_NONE 0x00
4335
#define TPGS_SUPPORT_OPTIMIZED 0x01
4436
#define TPGS_SUPPORT_NONOPTIMIZED 0x02
@@ -180,7 +172,7 @@ static int submit_stpg(struct scsi_device *sdev, int group_id,
180172

181173
/* Prepare the data buffer */
182174
memset(stpg_data, 0, stpg_len);
183-
stpg_data[4] = TPGS_STATE_OPTIMIZED & 0x0f;
175+
stpg_data[4] = SCSI_ACCESS_STATE_OPTIMAL;
184176
put_unaligned_be16(group_id, &stpg_data[6]);
185177

186178
/* Prepare the command. */
@@ -248,7 +240,7 @@ struct alua_port_group *alua_alloc_pg(struct scsi_device *sdev,
248240
}
249241
pg->group_id = group_id;
250242
pg->tpgs = tpgs;
251-
pg->state = TPGS_STATE_OPTIMIZED;
243+
pg->state = SCSI_ACCESS_STATE_OPTIMAL;
252244
if (optimize_stpg)
253245
pg->flags |= ALUA_OPTIMIZE_STPG;
254246
kref_init(&pg->kref);
@@ -378,22 +370,22 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
378370
return SCSI_DH_OK;
379371
}
380372

381-
static char print_alua_state(int state)
373+
static char print_alua_state(unsigned char state)
382374
{
383375
switch (state) {
384-
case TPGS_STATE_OPTIMIZED:
376+
case SCSI_ACCESS_STATE_OPTIMAL:
385377
return 'A';
386-
case TPGS_STATE_NONOPTIMIZED:
378+
case SCSI_ACCESS_STATE_ACTIVE:
387379
return 'N';
388-
case TPGS_STATE_STANDBY:
380+
case SCSI_ACCESS_STATE_STANDBY:
389381
return 'S';
390-
case TPGS_STATE_UNAVAILABLE:
382+
case SCSI_ACCESS_STATE_UNAVAILABLE:
391383
return 'U';
392-
case TPGS_STATE_LBA_DEPENDENT:
384+
case SCSI_ACCESS_STATE_LBA:
393385
return 'L';
394-
case TPGS_STATE_OFFLINE:
386+
case SCSI_ACCESS_STATE_OFFLINE:
395387
return 'O';
396-
case TPGS_STATE_TRANSITIONING:
388+
case SCSI_ACCESS_STATE_TRANSITIONING:
397389
return 'T';
398390
default:
399391
return 'X';
@@ -647,19 +639,19 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg)
647639
valid_states&TPGS_SUPPORT_OPTIMIZED?'A':'a');
648640

649641
switch (pg->state) {
650-
case TPGS_STATE_TRANSITIONING:
642+
case SCSI_ACCESS_STATE_TRANSITIONING:
651643
if (time_before(jiffies, pg->expiry)) {
652644
/* State transition, retry */
653645
pg->interval = 2;
654646
err = SCSI_DH_RETRY;
655647
} else {
656648
/* Transitioning time exceeded, set port to standby */
657649
err = SCSI_DH_IO;
658-
pg->state = TPGS_STATE_STANDBY;
650+
pg->state = SCSI_ACCESS_STATE_STANDBY;
659651
pg->expiry = 0;
660652
}
661653
break;
662-
case TPGS_STATE_OFFLINE:
654+
case SCSI_ACCESS_STATE_OFFLINE:
663655
/* Path unusable */
664656
err = SCSI_DH_DEV_OFFLINED;
665657
pg->expiry = 0;
@@ -693,20 +685,20 @@ static unsigned alua_stpg(struct scsi_device *sdev, struct alua_port_group *pg)
693685
return SCSI_DH_RETRY;
694686
}
695687
switch (pg->state) {
696-
case TPGS_STATE_OPTIMIZED:
688+
case SCSI_ACCESS_STATE_OPTIMAL:
697689
return SCSI_DH_OK;
698-
case TPGS_STATE_NONOPTIMIZED:
690+
case SCSI_ACCESS_STATE_ACTIVE:
699691
if ((pg->flags & ALUA_OPTIMIZE_STPG) &&
700692
!pg->pref &&
701693
(pg->tpgs & TPGS_MODE_IMPLICIT))
702694
return SCSI_DH_OK;
703695
break;
704-
case TPGS_STATE_STANDBY:
705-
case TPGS_STATE_UNAVAILABLE:
696+
case SCSI_ACCESS_STATE_STANDBY:
697+
case SCSI_ACCESS_STATE_UNAVAILABLE:
706698
break;
707-
case TPGS_STATE_OFFLINE:
699+
case SCSI_ACCESS_STATE_OFFLINE:
708700
return SCSI_DH_IO;
709-
case TPGS_STATE_TRANSITIONING:
701+
case SCSI_ACCESS_STATE_TRANSITIONING:
710702
break;
711703
default:
712704
sdev_printk(KERN_INFO, sdev,
@@ -760,7 +752,7 @@ static void alua_rtpg_work(struct work_struct *work)
760752

761753
pg->flags &= ~ALUA_PG_RUN_RTPG;
762754
spin_unlock_irqrestore(&pg->lock, flags);
763-
if (state == TPGS_STATE_TRANSITIONING) {
755+
if (state == SCSI_ACCESS_STATE_TRANSITIONING) {
764756
if (alua_tur(sdev) == SCSI_DH_RETRY) {
765757
spin_lock_irqsave(&pg->lock, flags);
766758
pg->flags &= ~ALUA_PG_RUNNING;
@@ -1006,19 +998,19 @@ static int alua_prep_fn(struct scsi_device *sdev, struct request *req)
1006998
{
1007999
struct alua_dh_data *h = sdev->handler_data;
10081000
struct alua_port_group __rcu *pg;
1009-
int state = TPGS_STATE_OPTIMIZED;
1001+
unsigned char state = SCSI_ACCESS_STATE_OPTIMAL;
10101002
int ret = BLKPREP_OK;
10111003

10121004
rcu_read_lock();
10131005
pg = rcu_dereference(h->pg);
10141006
if (pg)
10151007
state = pg->state;
10161008
rcu_read_unlock();
1017-
if (state == TPGS_STATE_TRANSITIONING)
1009+
if (state == SCSI_ACCESS_STATE_TRANSITIONING)
10181010
ret = BLKPREP_DEFER;
1019-
else if (state != TPGS_STATE_OPTIMIZED &&
1020-
state != TPGS_STATE_NONOPTIMIZED &&
1021-
state != TPGS_STATE_LBA_DEPENDENT) {
1011+
else if (state != SCSI_ACCESS_STATE_OPTIMAL &&
1012+
state != SCSI_ACCESS_STATE_ACTIVE &&
1013+
state != SCSI_ACCESS_STATE_LBA) {
10221014
ret = BLKPREP_KILL;
10231015
req->cmd_flags |= REQ_QUIET;
10241016
}

0 commit comments

Comments
 (0)