diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-11-10 09:30:07 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-11-10 09:30:07 -0700 |
commit | bf68e9d9ab185121b6004fc81b531bce8348726d (patch) | |
tree | a42e2ce4644e0443cf98e2761a1f27a72204f955 /util.c | |
parent | ef70b9f4ef7a3a9f70b3a09b3a55b1cc675c0a37 (diff) | |
download | mdadm-bf68e9d9ab185121b6004fc81b531bce8348726d.tar.gz mdadm-bf68e9d9ab185121b6004fc81b531bce8348726d.tar.xz mdadm-bf68e9d9ab185121b6004fc81b531bce8348726d.zip |
fix add_dev() handling of broken links
Resolves issues like:
mdadm -Ss
mdadm: unable to open /dev/md/r1: No such file or directory
...where /dev/md/r1 points to a removed device.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -467,8 +467,10 @@ int devlist_ready = 0; int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s) { struct stat st; + if (S_ISLNK(stb->st_mode)) { - stat(name, &st); + if (stat(name, &st) != 0) + return 0; stb = &st; } |