diff options
author | Mike Gilbert <floppym@gentoo.org> | 2014-04-12 16:07:45 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-04-12 17:23:13 -0400 |
commit | eb66db55fc4b342e4253065886e0cc0419c45a07 (patch) | |
tree | ba9a5862de90e86b3ebeb662a7746cc740618eeb /src/fsck/fsck.c | |
parent | b189101727e80a09864c5e5880663ef565467f19 (diff) |
fsck: Search for fsck.type in PATH
Modifies find_binary() to accept NULL in the second argument.
fsck.type lookup logic moved to new fsck_exists() function, with a test.
Diffstat (limited to 'src/fsck/fsck.c')
-rw-r--r-- | src/fsck/fsck.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c index 18f2acaa49..5ed837dffb 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c @@ -37,6 +37,7 @@ #include "bus-errors.h" #include "fileio.h" #include "udev-util.h" +#include "path-util.h" static bool arg_skip = false; static bool arg_force = false; @@ -285,14 +286,13 @@ int main(int argc, char *argv[]) { type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); if (type) { - const char *checker = strappenda("/sbin/fsck.", type); - r = access(checker, X_OK); + r = fsck_exists(type); if (r < 0) { - if (errno == ENOENT) { - log_info("%s doesn't exist, not checking file system.", checker); + if (r == -ENOENT) { + log_info("fsck.%s doesn't exist, not checking file system.", type); return EXIT_SUCCESS; } else - log_warning("%s cannot be used: %m", checker); + log_warning("fsck.%s cannot be used: %s", type, strerror(-r)); } } |