summaryrefslogtreecommitdiff
path: root/src/fsck
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2014-04-12 16:07:45 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-04-12 17:23:13 -0400
commiteb66db55fc4b342e4253065886e0cc0419c45a07 (patch)
treeba9a5862de90e86b3ebeb662a7746cc740618eeb /src/fsck
parentb189101727e80a09864c5e5880663ef565467f19 (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')
-rw-r--r--src/fsck/fsck.c10
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));
}
}