diff options
author | Daniel Golle <daniel@makrotopia.org> | 2016-07-24 17:54:31 +0200 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2016-07-24 17:54:31 +0200 |
commit | addd7dc21fe99f2701c1d4708071578052af401d (patch) | |
tree | f745534ddeb4fb649af3f081daa0e2ac672ba463 | |
parent | 415bb93aac1b3b658d6957e7114ed3835ae3724d (diff) | |
download | fstools-addd7dc21fe99f2701c1d4708071578052af401d.tar.gz |
block: best-effort in find_mount_point
Don't immediatly fail if block device cannot be stat'ed.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r-- | block.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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; |