]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: remove rm_rf_and_free, add rm_rf_physical_and_free, use rm_rf_physical_and_fre...
authorEvgeny Vereshchagin <evvers@ya.ru>
Fri, 20 May 2016 13:08:24 +0000 (16:08 +0300)
committerLennart Poettering <lennart@poettering.net>
Fri, 20 May 2016 13:08:24 +0000 (15:08 +0200)
Some distros don't mount /tmp as tmpfs.
For example:
https://lists.ubuntu.com/archives/ubuntu-cloud/2016-January/001009.html

Some tests:
* print 'Attempted to remove disk file system, and we can't allow that.'
* don't really cleanup /tmp

src/basic/rm-rf.h
src/test/test-cgroup-mask.c
src/test/test-engine.c
src/test/test-path.c
src/test/test-sched-prio.c
src/test/test-unit-file.c

index 40b5b527d57265e98f7994dbdbea8eae82ab5f78..f693a5bb7c52bbadbf8424f9edde4d8f65952b02 100644 (file)
@@ -32,10 +32,10 @@ int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev);
 int rm_rf(const char *path, RemoveFlags flags);
 
 /* Useful for usage with _cleanup_(), destroys a directory and frees the pointer */
-static inline void rm_rf_and_free(char *p) {
+static inline void rm_rf_physical_and_free(char *p) {
         if (!p)
                 return;
-        (void) rm_rf(p, REMOVE_ROOT);
+        (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL);
         free(p);
 }
-DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rm_rf_and_free);
+DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rm_rf_physical_and_free);
index 4eb8fcd77340048785b9d66b4436bdbe3f722fe4..4677f7cbd9b43063aad67c97f44c314afea3399f 100644 (file)
@@ -109,7 +109,7 @@ static int test_cgroup_mask(void) {
 }
 
 int main(int argc, char* argv[]) {
-        _cleanup_(rm_rf_and_freep) char *runtime_dir = NULL;
+        _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
         int rc = 0;
 
         assert_se(runtime_dir = setup_fake_runtime_dir());
index 361d1e7b0beacdd799569890b09e9fb75a6092ca..23da10fa1a2f7be7e8b1719b9fbd70dc386ec72d 100644 (file)
@@ -28,7 +28,7 @@
 #include "tests.h"
 
 int main(int argc, char *argv[]) {
-        _cleanup_(rm_rf_and_freep) char *runtime_dir = NULL;
+        _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error err = SD_BUS_ERROR_NULL;
         Manager *m = NULL;
         Unit *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL, *g = NULL, *h = NULL;
index 435cafd83afc5b13ad3bc8ba451fbdc91eff8af0..62181e22a0b24d5d4854c68928d2c37e3fcbfccf 100644 (file)
@@ -255,7 +255,7 @@ int main(int argc, char *argv[]) {
                 NULL,
         };
 
-        _cleanup_(rm_rf_and_freep) char *runtime_dir = NULL;
+        _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
         const test_function_t *test = NULL;
         Manager *m = NULL;
 
index 3e9caafc710dd143fea8e50f0a9637c48c32f5b6..c068f5c39eaa199ef8e527062b539dc8dfb8a79e 100644 (file)
@@ -26,7 +26,7 @@
 #include "tests.h"
 
 int main(int argc, char *argv[]) {
-        _cleanup_(rm_rf_and_freep) char *runtime_dir = NULL;
+        _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
         Manager *m = NULL;
         Unit *idle_ok, *idle_bad, *rr_ok, *rr_bad, *rr_sched;
         Service *ser;
index c340673c6ce7a44de3f48b1e783b05f055522312..ade0ff2a63c98a8d2ed71cc7694c0cbd842a0644 100644 (file)
@@ -842,7 +842,7 @@ static void test_config_parse_pass_environ(void) {
 }
 
 int main(int argc, char *argv[]) {
-        _cleanup_(rm_rf_and_freep) char *runtime_dir = NULL;
+        _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
         int r;
 
         log_parse_environment();