core: rework reboot parameter logic a bit
Always warn if something fails, and clarify that the involved utility functions do so in their name. Drop the REBOOT_PARAM_FILE macro. We don't do this for other flag file paths like this, so don't do this for this one either. The path isn't configurable anyway, hence let's make this easier to read by avoiding this one indirection.
This commit is contained in:
@@ -41,8 +41,6 @@
|
||||
#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
|
||||
#define SIGNALS_IGNORE SIGPIPE
|
||||
|
||||
#define REBOOT_PARAM_FILE "/run/systemd/reboot-param"
|
||||
|
||||
#ifdef HAVE_SPLIT_USR
|
||||
#define KBD_KEYMAP_DIRS \
|
||||
"/usr/share/keymaps/\0" \
|
||||
|
||||
+17
-9
@@ -778,16 +778,24 @@ uint64_t physical_memory(void) {
|
||||
return (uint64_t) mem * (uint64_t) page_size();
|
||||
}
|
||||
|
||||
int update_reboot_param_file(const char *param) {
|
||||
int r = 0;
|
||||
int update_reboot_parameter_and_warn(const char *param) {
|
||||
int r;
|
||||
|
||||
if (param) {
|
||||
RUN_WITH_UMASK(0022)
|
||||
r = write_string_file(REBOOT_PARAM_FILE, param, WRITE_STRING_FILE_CREATE);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to write reboot param to "REBOOT_PARAM_FILE": %m");
|
||||
} else
|
||||
(void) unlink(REBOOT_PARAM_FILE);
|
||||
if (isempty(param)) {
|
||||
if (unlink("/run/systemd/reboot-param") < 0) {
|
||||
if (errno == ENOENT)
|
||||
return 0;
|
||||
|
||||
return log_warning_errno(errno, "Failed to unlink reboot parameter file: %m");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
RUN_WITH_UMASK(0022)
|
||||
r = write_string_file("/run/systemd/reboot-param", param, WRITE_STRING_FILE_CREATE);
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to write reboot parameter file: %m");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -184,6 +184,6 @@ int namespace_enter(int pidns_fd, int mntns_fd, int netns_fd, int userns_fd, int
|
||||
|
||||
uint64_t physical_memory(void);
|
||||
|
||||
int update_reboot_param_file(const char *param);
|
||||
int update_reboot_parameter_and_warn(const char *param);
|
||||
|
||||
int version(void);
|
||||
|
||||
Reference in New Issue
Block a user