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;
const char *options, *discard_option;
int r;
+ assert(node);
+ assert(fstype);
+
options = mount_options_for_fstype(fstype);
discard_option = discard ? "discard" : "nodiscard";
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)
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) {
#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);