X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Ffsck%2Ffsck.c;h=70a591883e70cc161165077fba3674e12c5960eb;hp=0b572e59f5ab387a11cfb8e6746a093fae7abd8c;hb=48d3e8d07f2978f001cc85b2dddb7f8ec9d07006;hpb=8501384436b410cb9f5929ef6873c59fac6254be diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c index 0b572e59f..70a591883 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c @@ -47,7 +47,7 @@ static const char *arg_repair = "-a"; static void start_target(const char *target) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_unref_ sd_bus *bus = NULL; + _cleanup_bus_close_unref_ sd_bus *bus = NULL; int r; assert(target); @@ -302,15 +302,11 @@ int main(int argc, char *argv[]) { type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); if (type) { r = fsck_exists(type); - if (r < 0) { - if (r == -ENOENT) { - log_info("fsck.%s doesn't exist, not checking file system on %s", - type, device); - return EXIT_SUCCESS; - } else - log_warning("fsck.%s cannot be used for %s: %s", - type, device, strerror(-r)); - } + if (r == -ENOENT) { + log_info("fsck.%s doesn't exist, not checking file system on %s", type, device); + return EXIT_SUCCESS; + } else if (r < 0) + log_warning("fsck.%s cannot be used for %s: %s", type, device, strerror(-r)); } if (arg_show_progress) @@ -324,16 +320,11 @@ int main(int argc, char *argv[]) { cmdline[i++] = "-T"; /* - * Disable locking which conflict with udev's event - * ownershipi, until util-linux moves the flock - * synchronization file which prevents multiple fsck running - * on the same rotationg media, from the disk device - * node to a privately owned regular file. - * - * https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5 - * - * cmdline[i++] = "-l"; + * Since util-linux v2.25 fsck uses /run/fsck/.lock files. + * The previous versions use flock for the device and conflict with + * udevd, see https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5 */ + cmdline[i++] = "-l"; if (!root_directory) cmdline[i++] = "-M";