X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=libudev%2Flibudev-util-private.c;h=6b68b6a3660edef1edaee98625f3c338e92b2fc2;hb=c54b43e2c233e724f840c4f6a0a81bdd549e40bb;hp=7d28b23b389e6d3c6fc11dba6d75678a5760ba79;hpb=88cbfb09ee5510277503ff1830ecc3aa6c380b00;p=elogind.git diff --git a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c index 7d28b23b3..6b68b6a36 100644 --- a/libudev/libudev-util-private.c +++ b/libudev/libudev-util-private.c @@ -74,7 +74,7 @@ int util_delete_path(struct udev *udev, const char *path) { char p[UTIL_PATH_SIZE]; char *pos; - int retval; + int err = 0; if (path[0] == '/') while(path[1] == '/') @@ -92,19 +92,14 @@ int util_delete_path(struct udev *udev, const char *path) if ((pos == p) || (pos == NULL)) break; - /* remove if empty */ - retval = rmdir(p); - if (errno == ENOENT) - retval = 0; - if (retval) { - if (errno == ENOTEMPTY) - return 0; - err(udev, "rmdir(%s) failed: %m\n", p); + err = rmdir(p); + if (err < 0) { + if (errno == ENOENT) + err = 0; break; } - dbg(udev, "removed '%s'\n", p); } - return 0; + return err; } /* Reset permissions on the device node, before unlinking it to make sure, @@ -454,7 +449,7 @@ int util_run_program(struct udev *udev, const char *command, char **envp, if (errpipe[READ_END] > 0) close(errpipe[READ_END]); - /* return the childs stdout string */ + /* return the child's stdout string */ if (result) { result[respos] = '\0'; dbg(udev, "result='%s'\n", result);