From da911929cf232b81a4e2dcffbb26dc3cc6f222af Mon Sep 17 00:00:00 2001 From: Goffredo Baroncelli 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 --- 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