diff mbox

[RESEND] multipath: fix cciss device names

Message ID 20120727205718.GL5299@ether.msp.redhat.com (mailing list archive)
State Deferred, archived
Headers show

Commit Message

Benjamin Marzinski July 27, 2012, 8:57 p.m. UTC
When we're looking for cciss devices in sysfs, they have a "!" not a "/".
If users run multipath on a cciss device using it's devnode name,
/dev/cciss/cXdY, multipath should convert that to the sysfs name.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 multipath/main.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Comments

Christophe Varoqui Aug. 17, 2012, 7:57 p.m. UTC | #1
On ven., 2012-07-27 at 15:57 -0500, Benjamin Marzinski wrote:
> When we're looking for cciss devices in sysfs, they have a "!" not a "/".
> If users run multipath on a cciss device using it's devnode name,
> /dev/cciss/cXdY, multipath should convert that to the sysfs name.
> 
Applied.

Thanks.

> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
> ---
>  multipath/main.c |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> Index: multipath-tools-120518/multipath/main.c
> ===================================================================
> --- multipath-tools-120518.orig/multipath/main.c
> +++ multipath-tools-120518/multipath/main.c
> @@ -409,6 +409,16 @@ get_dev_type(char *dev) {
>  		return DEV_DEVMAP;
>  }
>  
> +static void
> +convert_dev(char *dev)
> +{
> +	char *ptr = strstr(dev, "cciss/");
> +	if (ptr) {
> +		ptr += 5;
> +		*ptr = '!';
> +	}
> +}
> +
>  int
>  main (int argc, char *argv[])
>  {
> @@ -514,6 +524,8 @@ main (int argc, char *argv[])
>  
>  		strncpy(conf->dev, argv[optind], FILE_NAME_SIZE);
>  		conf->dev_type = get_dev_type(conf->dev);
> +		if (conf->dev_type == DEV_DEVNODE)
> +			convert_dev(conf->dev);
>  	}
>  	conf->daemon = 0;
>  



--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox

Patch

Index: multipath-tools-120518/multipath/main.c
===================================================================
--- multipath-tools-120518.orig/multipath/main.c
+++ multipath-tools-120518/multipath/main.c
@@ -409,6 +409,16 @@  get_dev_type(char *dev) {
 		return DEV_DEVMAP;
 }
 
+static void
+convert_dev(char *dev)
+{
+	char *ptr = strstr(dev, "cciss/");
+	if (ptr) {
+		ptr += 5;
+		*ptr = '!';
+	}
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -514,6 +524,8 @@  main (int argc, char *argv[])
 
 		strncpy(conf->dev, argv[optind], FILE_NAME_SIZE);
 		conf->dev_type = get_dev_type(conf->dev);
+		if (conf->dev_type == DEV_DEVNODE)
+			convert_dev(conf->dev);
 	}
 	conf->daemon = 0;