X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=libudev%2Flibudev-util-private.c;h=6b68b6a3660edef1edaee98625f3c338e92b2fc2;hb=83184d008ba23724fd30996440534c0633a0d0aa;hp=8c535125a83c0fee9e818357912d8b1215ac1ecb;hpb=e85f5ec15f1c0a820cc81b422c2fa157d9805896;p=elogind.git diff --git a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c index 8c535125a..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] == '/') @@ -84,7 +84,7 @@ int util_delete_path(struct udev *udev, const char *path) if (pos == p || pos == NULL) return 0; - while (1) { + for (;;) { *pos = '\0'; pos = strrchr(p, '/'); @@ -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);