chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal, shared: fix warnings during compilation on 32 bits
[elogind.git]
/
src
/
shared
/
util.c
diff --git
a/src/shared/util.c
b/src/shared/util.c
index 6d826b6f5eafbf185bc0191d850a176ff3aff6a3..4cf928f83a3049a443e1cb5bf9404914ed7e2a06 100644
(file)
--- a/
src/shared/util.c
+++ b/
src/shared/util.c
@@
-3400,6
+3400,12
@@
int rm_rf_children_dangerous(int fd, bool only_dirs, bool honour_sticky, struct
return ret;
}
return ret;
}
+static int is_temporary_fs(struct statfs *s) {
+ assert(s);
+ return s->f_type == TMPFS_MAGIC ||
+ (long)s->f_type == (long)RAMFS_MAGIC;
+}
+
int rm_rf_children(int fd, bool only_dirs, bool honour_sticky, struct stat *root_dev) {
struct statfs s;
int rm_rf_children(int fd, bool only_dirs, bool honour_sticky, struct stat *root_dev) {
struct statfs s;
@@
-3413,9
+3419,7
@@
int rm_rf_children(int fd, bool only_dirs, bool honour_sticky, struct stat *root
/* We refuse to clean disk file systems with this call. This
* is extra paranoia just to be sure we never ever remove
* non-state data */
/* We refuse to clean disk file systems with this call. This
* is extra paranoia just to be sure we never ever remove
* non-state data */
-
- if (s.f_type != TMPFS_MAGIC &&
- s.f_type != RAMFS_MAGIC) {
+ if (!is_temporary_fs(&s)) {
log_error("Attempted to remove disk file system, and we can't allow that.");
close_nointr_nofail(fd);
return -EPERM;
log_error("Attempted to remove disk file system, and we can't allow that.");
close_nointr_nofail(fd);
return -EPERM;
@@
-3448,8
+3452,7
@@
static int rm_rf_internal(const char *path, bool only_dirs, bool delete_root, bo
if (statfs(path, &s) < 0)
return -errno;
if (statfs(path, &s) < 0)
return -errno;
- if (s.f_type != TMPFS_MAGIC &&
- s.f_type != RAMFS_MAGIC) {
+ if (!is_temporary_fs(&s)) {
log_error("Attempted to remove disk file system, and we can't allow that.");
return -EPERM;
}
log_error("Attempted to remove disk file system, and we can't allow that.");
return -EPERM;
}
@@
-3468,8
+3471,7
@@
static int rm_rf_internal(const char *path, bool only_dirs, bool delete_root, bo
return -errno;
}
return -errno;
}
- if (s.f_type != TMPFS_MAGIC &&
- s.f_type != RAMFS_MAGIC) {
+ if (!is_temporary_fs(&s)) {
log_error("Attempted to remove disk file system, and we can't allow that.");
close_nointr_nofail(fd);
return -EPERM;
log_error("Attempted to remove disk file system, and we can't allow that.");
close_nointr_nofail(fd);
return -EPERM;
@@
-5767,7
+5769,7
@@
bool in_initrd(void) {
saved = access("/etc/initrd-release", F_OK) >= 0 &&
statfs("/", &s) >= 0 &&
saved = access("/etc/initrd-release", F_OK) >= 0 &&
statfs("/", &s) >= 0 &&
-
(s.f_type == TMPFS_MAGIC || s.f_type == RAMFS_MAGIC
);
+
is_temporary_fs(&s
);
return saved;
}
return saved;
}