Blob Blame History Raw
From c17f0c2e68960969789427eca20ddab1b8e4fcc6 Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Thu, 1 Nov 2012 16:22:42 -0700
Subject: [PATCH] libparted: don't canonicalize /dev/md/ paths (#872361)

This is the same issue we have with /dev/mapper/ paths that was fixed in
commit c1eb485b9fd8919e18f192d678bc52b0488e6ee0. When libparted
is used to setup the device the symlink should be used to reference it,
not the backing device name which could change.

* libparted/device.c (ped_device_get): Don't canonicalize names
  that start with "/dev/md/".
---
 libparted/device.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libparted/device.c b/libparted/device.c
index 738b320..cdcc117 100644
--- a/libparted/device.c
+++ b/libparted/device.c
@@ -152,8 +152,11 @@ ped_device_get (const char* path)
 	char*		normal_path = NULL;
 
 	PED_ASSERT (path != NULL);
-	/* Don't canonicalize /dev/mapper paths, see tests/symlink.c */
-	if (strncmp (path, "/dev/mapper/", 12))
+	/* Don't canonicalize /dev/mapper or /dev/md/ paths, see
+	   tests/symlink.c
+	*/
+	if (strncmp (path, "/dev/mapper/", 12) &&
+	    strncmp (path, "/dev/md/", 8))
 		normal_path = canonicalize_file_name (path);
 	if (!normal_path)
 		/* Well, maybe it is just that the file does not exist.
-- 
1.7.11.7