[PATCH] Print concrete error when creating mddev

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

 



Example from my testing:
```
mdadm: unexpected failure opening /dev/md127: No such device or address
```

Before it would just print:
```
mdadm: unexpected failure opening /dev/md127
```
---
 mdopen.c | 4 ++--
 util.c   | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/mdopen.c b/mdopen.c
index 245be537..c8e5cb9d 100644
--- a/mdopen.c
+++ b/mdopen.c
@@ -444,8 +444,8 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy,
 	}
 	mdfd = open_dev_excl(devnm);
 	if (mdfd < 0)
-		pr_err("unexpected failure opening %s\n",
-			devname);
+		pr_err("unexpected failure opening %s: %s\n",
+			devname, strerror(errno));
 	return mdfd;
 }

diff --git a/util.c b/util.c
index cc94f96e..7c8c0bb1 100644
--- a/util.c
+++ b/util.c
@@ -1088,8 +1088,9 @@ int open_dev_excl(char *devnm)
 	long delay = 1000;

 	sprintf(buf, "%d:%d", major(devid), minor(devid));
+	int fd = -1;
 	for (i = 0; i < 25; i++) {
-		int fd = dev_open(buf, flags|O_EXCL);
+		fd = dev_open(buf, flags|O_EXCL);
 		if (fd >= 0)
 			return fd;
 		if (errno == EACCES && flags == O_RDWR) {
@@ -1102,7 +1103,7 @@ int open_dev_excl(char *devnm)
 		if (delay < 200000)
 			delay *= 2;
 	}
-	return -1;
+	return fd;
 }

 int same_dev(char *one, char *two)
--
2.35.3




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux