]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
homework: reuse home_validate_update_luks() at one more place
authorLennart Poettering <lennart@poettering.net>
Wed, 13 Oct 2021 20:40:11 +0000 (22:40 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 16 Oct 2021 08:13:02 +0000 (10:13 +0200)
We have the same code at two places, let's reuse it. Given the more
generic scope let's rename the function home_get_state() since it
retrieve the current setup state of the LUKS logic.

src/home/homework-luks.c
src/home/homework-luks.h
src/home/homework.c

index 43174f311bf7d521214394ee09807215b280caeb..90a49559f182f995aa16c2726a4210b7ac10aba4 100644 (file)
@@ -1379,15 +1379,10 @@ int home_activate_luks(
         assert_se(hdo = user_record_home_directory(h));
         hd = strdupa_safe(hdo); /* copy the string out, since it might change later in the home record object */
 
-        r = make_dm_names(h->user_name, &setup.dm_name, &setup.dm_node);
+        r = home_get_state_luks(h, &setup);
         if (r < 0)
                 return r;
-
-        r = access(setup.dm_node, F_OK);
-        if (r < 0) {
-                if (errno != ENOENT)
-                        return log_error_errno(errno, "Failed to determine whether %s exists: %m", setup.dm_node);
-        } else
+        if (r > 0)
                 return log_error_errno(SYNTHETIC_ERRNO(EEXIST), "Device mapper device %s already exists, refusing.", setup.dm_node);
 
         r = home_prepare_luks(
@@ -2351,7 +2346,7 @@ fail:
         return r;
 }
 
-int home_validate_update_luks(UserRecord *h, HomeSetup *setup) {
+int home_get_state_luks(UserRecord *h, HomeSetup *setup) {
         _cleanup_free_ char *dm_name = NULL, *dm_node = NULL;
         int r;
 
index 8764862bd2cb47821bdb3b07adb166c95874e6aa..eac8f0761beba0e575b3a8e9c87e5db53f297a8f 100644 (file)
@@ -15,7 +15,7 @@ int home_store_header_identity_luks(UserRecord *h, HomeSetup *setup, UserRecord
 
 int home_create_luks(UserRecord *h, PasswordCache *cache, char **effective_passwords, UserRecord **ret_home);
 
-int home_validate_update_luks(UserRecord *h, HomeSetup *setup);
+int home_get_state_luks(UserRecord *h, HomeSetup *setup);
 
 int home_resize_luks(UserRecord *h, bool already_activated, PasswordCache *cache, HomeSetup *setup, UserRecord **ret_home);
 
index 0c77b492e87b7614f465a760ac1f14b80b102331..48ff77213b44a41a6013dd62470de5ae5069d17b 100644 (file)
@@ -1408,7 +1408,7 @@ static int home_validate_update(UserRecord *h, HomeSetup *setup) {
                 break;
 
         case USER_LUKS: {
-                r = home_validate_update_luks(h, setup);
+                r = home_get_state_luks(h, setup);
                 if (r < 0)
                         return r;
                 if ((r > 0) != has_mount)