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

Re: [dm-devel] [PATCH] multipath-tools: service mode changes for RDACstorage



Christophe,
  Do you have any comments on this? If not can you please merge this..
Thanks
Babu

> -----Original Message-----
> From: Moger, Babu
> Sent: Monday, July 25, 2011 7:05 AM
> To: device-mapper development
> Cc: Kumar, Vijay; Dachepalli, Sudhir; Krishnasamy, Somasundaram; Qi,
> Yanling; Stankey, Robert
> Subject: [dm-devel] [PATCH] multipath-tools: service mode changes for
> RDACstorage
> 
> This patch handles the recent changes in NetApp RDAC storage firmware to
> report service mode. Firmware changed the inquiry page 0xc9 to report
> service mode. Purpose this change is to avoid DMMP going into infinite
> loop of switching back and forth between controllers when a controller
> is placed in service mode. This fixes the problem and reports the path
> as failed if the controller is placed in service mode.
> 
> Signed-off-by: Babu Moger <babu moger netapp com>
> Reviewed-by: Yanling Qi <yanling qi netapp com>
> Reviewed-by: Somasundaram Krishnasamy
> <Somasundaram Krishnasamy netapp com>
> 
> ---
> --- multipath-tools-0.4.8/libmultipath/checkers/rdac.c.orig	2011-07-06
> 16:37:43.000000000 -0500
> +++ multipath-tools-0.4.8/libmultipath/checkers/rdac.c	2011-07-25
> 06:38:03.000000000 -0500
> @@ -198,7 +198,10 @@ struct volume_access_inq
>  	char PQ_PDT;
>  	char dontcare0[7];
>  	char avtcvp;
> -	char dontcare1[39];
> +	char dontcare1;
> +	char asym_access_state_cur;
> +	char vendor_specific_cur;
> +	char dontcare2[36];
>  };
> 
>  extern int
> @@ -216,6 +219,14 @@ libcheck_check (struct checker * c)
>  		ret = PATH_DOWN;
>  		goto done;
>  	}
> +
> +	/* check if controller is in service mode */
> +	if ((inq.avtcvp & 0x10) &&
> +	    ((inq.asym_access_state_cur & 0x0F) == 0x3) &&
> +	    (inq.vendor_specific_cur == 0x7)) {
> +		ret = PATH_DOWN;
> +		goto done;
> +	}
> 
>  	/* If owner set or ioship mode is enabled return PATH_UP always */
>  	if ((inq.avtcvp & 0x1) || ((inq.avtcvp >> 5) & 0x1))
> 
> 
> 
> --
> dm-devel mailing list
> dm-devel redhat com
> https://www.redhat.com/mailman/listinfo/dm-devel


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