From: Mike Yuan Date: Fri, 6 Dec 2024 17:20:06 +0000 (+0100) Subject: shared/generator: clean up generator_write_device_timeout() a bit X-Git-Tag: v258-rc1~1885^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a097eced649816669579184a4943291e4286157;p=thirdparty%2Fsystemd.git shared/generator: clean up generator_write_device_timeout() a bit - Rephrase a few log messages - Remove unused where parameter - Return 1 if we set something No functional change, preparation for later commits. --- diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c index 6a3ff961fc8..12b6044d8c5 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -518,7 +518,7 @@ static int create_disk( "After=modprobe@loop.service\n", u_escaped); - r = generator_write_timeouts(arg_dest, device, name, options, &filtered); + r = generator_write_device_timeout(arg_dest, device, options, &filtered); if (r < 0) log_warning_errno(r, "Failed to write device timeout drop-in: %m"); diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index f3f435c6853..6a7cf57ba34 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -289,7 +289,7 @@ static int add_swap( return log_error_errno(r, "Failed to write unit file %s: %m", name); /* use what as where, to have a nicer error message */ - r = generator_write_timeouts(arg_dest, what, what, options, NULL); + r = generator_write_device_timeout(arg_dest, what, options, NULL); if (r < 0) return r; @@ -670,7 +670,7 @@ static int add_mount( fprintf(f, "Type=%s\n", t); } - r = generator_write_timeouts(dest, what, where, opts, &filtered); + r = generator_write_device_timeout(dest, what, opts, &filtered); if (r < 0) return r; diff --git a/src/hibernate-resume/hibernate-resume-generator.c b/src/hibernate-resume/hibernate-resume-generator.c index 2b175342c14..b6495a25819 100644 --- a/src/hibernate-resume/hibernate-resume-generator.c +++ b/src/hibernate-resume/hibernate-resume-generator.c @@ -75,11 +75,7 @@ static int process_resume(const HibernateInfo *info) { if (r < 0) log_warning_errno(r, "Failed to write device timeout drop-in, ignoring: %m"); - r = generator_write_timeouts(arg_dest, - info->device, - info->device, - arg_resume_options ?: arg_root_options, - NULL); + r = generator_write_device_timeout(arg_dest, info->device, arg_resume_options ?: arg_root_options, NULL); if (r < 0) log_warning_errno(r, "Failed to write device timeout drop-in, ignoring: %m"); diff --git a/src/shared/generator.c b/src/shared/generator.c index 0564e2e9e32..5397ad15694 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -368,10 +368,9 @@ int generator_write_fsck_deps( return 0; } -int generator_write_timeouts( +int generator_write_device_timeout( const char *dir, const char *what, - const char *where, const char *opts, char **filtered) { @@ -383,6 +382,9 @@ int generator_write_timeouts( usec_t u; int r; + assert(dir); + assert(what); + r = fstab_filter_options(opts, "comment=systemd.device-timeout\0" "x-systemd.device-timeout\0", NULL, &timeout, NULL, filtered); @@ -395,7 +397,7 @@ int generator_write_timeouts( r = parse_sec_fix_0(timeout, &u); if (r < 0) { - log_warning("Failed to parse timeout for %s, ignoring: %s", where, timeout); + log_warning("Failed to parse timeout for device '%s', ignoring: %s", what, timeout); return 0; } @@ -403,22 +405,26 @@ int generator_write_timeouts( if (!node) return log_oom(); if (!is_device_path(node)) { - log_warning("x-systemd.device-timeout ignored for %s", what); + log_warning("'%s' is not a device path, ignoring x-systemd.device-timeout= option.", node); return 0; } r = unit_name_from_path(node, ".device", &unit); if (r < 0) - return log_error_errno(r, "Failed to make unit name from path: %m"); + return log_error_errno(r, "Failed to make unit name from device path '%s': %m", node); + + r = write_drop_in_format(dir, unit, 50, "device-timeout", + "# Automatically generated by %s\n" + "# from supplied options \"%s\"\n\n" + "[Unit]\n" + "JobRunningTimeoutSec=%s", + program_invocation_short_name, + opts, + timeout); + if (r < 0) + return r; - return write_drop_in_format(dir, unit, 50, "device-timeout", - "# Automatically generated by %s\n" - "# from supplied options \"%s\"\n\n" - "[Unit]\n" - "JobRunningTimeoutSec=%s", - program_invocation_short_name, - opts, - timeout); + return 1; } int generator_write_network_device_deps( diff --git a/src/shared/generator.h b/src/shared/generator.h index 675af99f3ca..ff8e8d1c6bf 100644 --- a/src/shared/generator.h +++ b/src/shared/generator.h @@ -23,10 +23,9 @@ int generator_write_fsck_deps( const char *where, const char *type); -int generator_write_timeouts( +int generator_write_device_timeout( const char *dir, const char *what, - const char *where, const char *opts, char **filtered);