From: Yu Watanabe Date: Wed, 3 Apr 2024 19:58:25 +0000 (+0900) Subject: udev: do not update sysattr and sysctl value on testing X-Git-Tag: v256-rc1~303 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7cb6801a2ba3aa9856815121c8601dea903ef2c;p=thirdparty%2Fsystemd.git udev: do not update sysattr and sysctl value on testing Follow-up for 089bef66316e5bdc91b9984148e5a6455449c1da. --- diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 89840e3fb92..51732080e85 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -2702,14 +2702,18 @@ static int udev_rule_apply_token_to_event( break; } - log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value); - r = write_string_file(buf, value, - WRITE_STRING_FILE_VERIFY_ON_FAILURE | - WRITE_STRING_FILE_DISABLE_BUFFER | - WRITE_STRING_FILE_AVOID_NEWLINE | - WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE); - if (r < 0) - log_event_error_errno(dev, token, r, "Failed to write ATTR{%s}, ignoring: %m", buf); + if (EVENT_MODE_DESTRUCTIVE(event)) { + log_event_debug(dev, token, "Writing ATTR{'%s'}=\"%s\".", buf, value); + r = write_string_file(buf, value, + WRITE_STRING_FILE_VERIFY_ON_FAILURE | + WRITE_STRING_FILE_DISABLE_BUFFER | + WRITE_STRING_FILE_AVOID_NEWLINE | + WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE); + if (r < 0) + log_event_error_errno(dev, token, r, "Failed to write ATTR{%s}=\"%s\", ignoring: %m", buf, value); + } else + log_event_debug(dev, token, "Running in test mode, skipping writing ATTR{%s}=\"%s\".", buf, value); + break; } case TK_A_SYSCTL: { @@ -2731,10 +2735,15 @@ static int udev_rule_apply_token_to_event( } sysctl_normalize(buf); - log_event_debug(dev, token, "SYSCTL '%s' writing '%s'", buf, value); - r = sysctl_write(buf, value); - if (r < 0) - log_event_error_errno(dev, token, r, "Failed to write SYSCTL{%s}='%s', ignoring: %m", buf, value); + + if (EVENT_MODE_DESTRUCTIVE(event)) { + log_event_debug(dev, token, "Writing SYSCTL{%s}=\"%s\".", buf, value); + r = sysctl_write(buf, value); + if (r < 0) + log_event_error_errno(dev, token, r, "Failed to write SYSCTL{%s}=\"%s\", ignoring: %m", buf, value); + } else + log_event_debug(dev, token, "Running in test mode, skipping writing SYSCTL{%s}=\"%s\".", buf, value); + break; } case TK_A_RUN_BUILTIN: