43 lines
1.2 KiB
Diff
43 lines
1.2 KiB
Diff
|
From da911929cf232b81a4e2dcffbb26dc3cc6f222af Mon Sep 17 00:00:00 2001
|
||
|
From: Goffredo Baroncelli <kreijack@inwind.it>
|
||
|
Date: Fri, 21 Oct 2011 19:00:28 +0200
|
||
|
Subject: [PATCH 05/35] Ignore the error ENXIO and ENOMEDIUM during a devs
|
||
|
scan
|
||
|
|
||
|
Ignore the error ENXIO (device don't exists) and ENOMEDIUM (
|
||
|
No medium found -> like a cd tray empty) in the function
|
||
|
btrfs_scan_one_dir.
|
||
|
This avoids spurios errors due to an empty CD or a block device node
|
||
|
without a device (which is frequent in a static /dev).
|
||
|
|
||
|
|
||
|
Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
|
||
|
---
|
||
|
utils.c | 10 ++++++++--
|
||
|
1 files changed, 8 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/utils.c b/utils.c
|
||
|
index 178d1b9..1c27e14 100644
|
||
|
--- a/utils.c
|
||
|
+++ b/utils.c
|
||
|
@@ -1003,8 +1003,14 @@ again:
|
||
|
}
|
||
|
fd = open(fullpath, O_RDONLY);
|
||
|
if (fd < 0) {
|
||
|
- fprintf(stderr, "failed to read %s: %s\n", fullpath,
|
||
|
- strerror(errno));
|
||
|
+ /* ignore the following errors:
|
||
|
+ ENXIO (device don't exists)
|
||
|
+ ENOMEDIUM (No medium found ->
|
||
|
+ like a cd tray empty)
|
||
|
+ */
|
||
|
+ if(errno != ENXIO && errno != ENOMEDIUM)
|
||
|
+ fprintf(stderr, "failed to read %s: %s\n",
|
||
|
+ fullpath, strerror(errno));
|
||
|
continue;
|
||
|
}
|
||
|
ret = btrfs_scan_one_device(fd, fullpath, &tmp_devices,
|
||
|
--
|
||
|
1.7.6.233.gd79bc
|
||
|
|