diff --git a/src/home/homework-cifs.c b/src/home/homework-cifs.c index 34cc3bbc9a..0a95b886b3 100644 --- a/src/home/homework-cifs.c +++ b/src/home/homework-cifs.c @@ -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; diff --git a/src/home/homework-mount.c b/src/home/homework-mount.c index 89ae58e25f..47345eb839 100644 --- a/src/home/homework-mount.c +++ b/src/home/homework-mount.c @@ -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,13 +63,22 @@ int home_unshare_and_mount(const char *node, const char *fstype, bool discard, u return r; (void) mkdir_p(HOME_RUNTIME_WORK_DIR, 0700); - - if (node) - return home_mount_node(node, fstype, discard, flags); - return 0; } +int home_unshare_and_mount(const char *node, const char *fstype, bool discard, unsigned long flags) { + int r; + + 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) { _cleanup_free_ char *subdir = NULL; const char *d; diff --git a/src/home/homework-mount.h b/src/home/homework-mount.h index 2a4591c1f4..893ecdc586 100644 --- a/src/home/homework-mount.h +++ b/src/home/homework-mount.h @@ -4,5 +4,6 @@ #include 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);