RE: [PATCH 2/3] scsi_dh_rdac : Detect the different RDAC operating modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: linux-scsi-owner@xxxxxxxxxxxxxxx [mailto:linux-scsi-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Moger, Babu
> Sent: Friday, April 08, 2011 12:39 PM
> To: linux-scsi@xxxxxxxxxxxxxxx; device-mapper development
> Cc: Qi, Yanling; Chauhan, Vijay; Stankey, Robert; Arumugam, Anburaja;
> Krishnasamy, Somasundaram; Dachepalli, Sudhir
> Subject: [PATCH 2/3] scsi_dh_rdac : Detect the different RDAC operating
> modes
> 
> This patch detects different operating RDAC modes during the discovery.
> It also collects the information about
> the preferred path.
> 
> Signed-off-by: Babu Moger <babu.moger@xxxxxxx>
> Reviewed-by: Yanling Qi <yanling.qi@xxxxxxx>
> Reviewed-by: Sudhir Dachepalli <Sudhir.Dachepalli@xxxxxxx>
> Reviewed-by: Somasundaram Krishnasamy <Somasundaram.Krishnasamy@xxxxxxx>
> Reviewed-by: Bob Stankey <Robert.Stankey@xxxxxxx>
> Reviewed-by: Vijay Chauhan <Vijay.Chauhan@xxxxxxx>

Tested-by: Charles Cummins <Charles.cummins@xxxxxxx>

> 
> ---
> --- linux-2.6.38/drivers/scsi/device_handler/scsi_dh_rdac.c.orig	2011-
> 03-17 16:51:40.000000000 -0500
> +++ linux-2.6.38/drivers/scsi/device_handler/scsi_dh_rdac.c	2011-03-17
> 16:53:33.000000000 -0500
> @@ -194,7 +194,6 @@ struct rdac_dh_data {
> 
>  #define RDAC_LUN_UNOWNED	0
>  #define RDAC_LUN_OWNED		1
> -#define RDAC_LUN_AVT		2
>  	char			lun_state;
> 
>  #define RDAC_PREFERRED		0
> @@ -473,25 +472,33 @@ static int check_ownership(struct scsi_d
>  	int err;
>  	struct c9_inquiry *inqp;
> 
> -	h->lun_state = RDAC_LUN_UNOWNED;
>  	h->state = RDAC_STATE_ACTIVE;
>  	err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h);
>  	if (err == SCSI_DH_OK) {
>  		inqp = &h->inq.c9;
> -		if ((inqp->avte_cvp >> 7) == 0x1) {
> -			/* LUN in AVT mode */
> -			sdev_printk(KERN_NOTICE, sdev,
> -				    "%s: AVT mode detected\n",
> -				    RDAC_NAME);
> -			h->lun_state = RDAC_LUN_AVT;
> -		} else if ((inqp->avte_cvp & 0x1) != 0) {
> -			/* LUN was owned by the controller */
> +		/* detect the operating mode */
> +		if ((inqp->avte_cvp >> 5) & 0x1)
> +			h->mode = RDAC_MODE_IOSHIP; /* LUN in IOSHIP mode */
> +		else if (inqp->avte_cvp >> 7)
> +			h->mode = RDAC_MODE_AVT; /* LUN in AVT mode */
> +		else
> +			h->mode = RDAC_MODE; /* LUN in RDAC mode */
> +
> +		/* Update ownership */
> +		if (inqp->avte_cvp & 0x1)
>  			h->lun_state = RDAC_LUN_OWNED;
> +		else {
> +			h->lun_state = RDAC_LUN_UNOWNED;
> +			if (h->mode == RDAC_MODE)
> +				h->state = RDAC_STATE_PASSIVE;
>  		}
> -	}
> 
> -	if (h->lun_state == RDAC_LUN_UNOWNED)
> -		h->state = RDAC_STATE_PASSIVE;
> +		/* Update path prio*/
> +		if (inqp->path_prio & 0x1)
> +			h->preferred = RDAC_PREFERRED;
> +		else
> +			h->preferred = RDAC_NON_PREFERRED;
> +	}
> 
>  	return err;
>  }
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux