]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/home/homework.h
Merge pull request #21162 from poettering/homed-cifs-improvements
[thirdparty/systemd.git] / src / home / homework.h
index 7bd31b5cead5112173b7885ad45c04d766517796..1b56fbbd8f1e91912d8a9dfdd853c738d2c3d892 100644 (file)
@@ -37,6 +37,8 @@ typedef struct HomeSetup {
 
         uint64_t partition_offset;
         uint64_t partition_size;
+
+        char *mount_suffix;           /* The directory to use as home dir is this path below /run/systemd/user-home-mount */
 } HomeSetup;
 
 typedef struct PasswordCache {
@@ -66,14 +68,20 @@ static inline bool password_cache_contains(const PasswordCache *cache, const cha
 /* Various flags for the operation of setting up a home directory */
 typedef enum HomeSetupFlags {
         HOME_SETUP_ALREADY_ACTIVATED = 1 << 0, /* Open an already activated home, rather than activate it afresh */
+
+        /* CIFS backend: */
+        HOME_SETUP_CIFS_MKDIR        = 1 << 1, /* Create CIFS subdir when missing */
 } HomeSetupFlags;
 
 int home_setup_done(HomeSetup *setup);
 
+int home_setup_undo_mount(HomeSetup *setup, int level);
+
 int home_setup(UserRecord *h, HomeSetupFlags flags, PasswordCache *cache, HomeSetup *setup, UserRecord **ret_header_home);
 
 int home_refresh(UserRecord *h, HomeSetup *setup, UserRecord *header_home, PasswordCache *cache, struct statfs *ret_statfs, UserRecord **ret_new_home);
 
+int home_maybe_shift_uid(UserRecord *h, HomeSetup *setup);
 int home_populate(UserRecord *h, int dir_fd);
 
 int home_load_embedded_identity(UserRecord *h, int root_fd, UserRecord *header_home, UserReconcileMode mode, PasswordCache *cache, UserRecord **ret_embedded_home, UserRecord **ret_new_home);