]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
homework: split home_unshare_and_mount() in two 21093/head
authorLennart Poettering <lennart@poettering.net>
Fri, 22 Oct 2021 14:08:26 +0000 (16:08 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 22 Oct 2021 14:09:50 +0000 (16:09 +0200)
Previously the call did two things, and the second thing was optional
(depending on first arg being NULL). Let's simplify this and just make
it two distinct functions, where one calls the other.

This should make things a bit more readable, given that we called a
function called "…and_mount()" which didn't actually mount...

No actual code changes, just some refactoring.

src/home/homework-cifs.c
src/home/homework-mount.c
src/home/homework-mount.h

index 34cc3bbc9acdcf848a258f7fde588d2621d7cd8a..0a95b886b360b48d665d3603669b6844bf78317f 100644 (file)
@@ -28,7 +28,7 @@ int home_setup_cifs(
                 char **pw;
                 int r;
 
-                r = home_unshare_and_mount(NULL, NULL, false, user_record_mount_flags(h));
+                r = home_unshare_and_mkdir();
                 if (r < 0)
                         return r;
 
index 89ae58e25fcfcc2e16dff6247b794d7c5839c81c..47345eb8391ee93cccf83e2af6194d1cc3a7adcf 100644 (file)
@@ -26,6 +26,9 @@ int home_mount_node(const char *node, const char *fstype, bool discard, unsigned
         const char *options, *discard_option;
         int r;
 
+        assert(node);
+        assert(fstype);
+
         options = mount_options_for_fstype(fstype);
 
         discard_option = discard ? "discard" : "nodiscard";
@@ -47,7 +50,7 @@ int home_mount_node(const char *node, const char *fstype, bool discard, unsigned
         return 0;
 }
 
-int home_unshare_and_mount(const char *node, const char *fstype, bool discard, unsigned long flags) {
+int home_unshare_and_mkdir(void) {
         int r;
 
         if (unshare(CLONE_NEWNS) < 0)
@@ -60,11 +63,20 @@ int home_unshare_and_mount(const char *node, const char *fstype, bool discard, u
                 return r;
 
         (void) mkdir_p(HOME_RUNTIME_WORK_DIR, 0700);
+        return 0;
+}
 
-        if (node)
-                return home_mount_node(node, fstype, discard, flags);
+int home_unshare_and_mount(const char *node, const char *fstype, bool discard, unsigned long flags) {
+        int r;
 
-        return 0;
+        assert(node);
+        assert(fstype);
+
+        r = home_unshare_and_mkdir();
+        if (r < 0)
+                return r;
+
+        return home_mount_node(node, fstype, discard, flags);
 }
 
 int home_move_mount(const char *user_name_and_realm, const char *target) {
index 2a4591c1f42c0e4e0ec8bff1a4be168bd1ea6cc8..893ecdc58693d9ffd4cbe65491bed058709eeb07 100644 (file)
@@ -4,5 +4,6 @@
 #include <stdbool.h>
 
 int home_mount_node(const char *node, const char *fstype, bool discard, unsigned long flags);
+int home_unshare_and_mkdir(void);
 int home_unshare_and_mount(const char *node, const char *fstype, bool discard, unsigned long flags);
 int home_move_mount(const char *user_name_and_realm, const char *target);