block: best-effort in find_mount_point
authorDaniel Golle <daniel@makrotopia.org>
Sun, 24 Jul 2016 15:54:31 +0000 (17:54 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 24 Jul 2016 15:54:31 +0000 (17:54 +0200)
Don't immediatly fail if block device cannot be stat'ed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
block.c

diff --git a/block.c b/block.c
index 33264583c23b91ef32747c5e50c0c7b4fb624283..720ecb11dc25814638ee8bee051fff58d135a1c6 100644 (file)
--- a/block.c
+++ b/block.c
@@ -592,13 +592,13 @@ static char* find_mount_point(char *block)
        int len = strlen(block);
        char *point = NULL, *pos, *tmp, *cpoint, *devname;
        struct stat s;
+       int rstat;
        unsigned int minor, major;
 
        if (!fp)
                return NULL;
 
-       if (stat(block, &s))
-               return NULL;
+       rstat = stat(block, &s);
 
        while (fgets(line, sizeof(line), fp)) {
                pos = strchr(line, ' ');
@@ -658,6 +658,9 @@ static char* find_mount_point(char *block)
                        break;
                }
 
+               if (rstat)
+                       continue;
+
                if (!S_ISBLK(s.st_mode))
                        continue;