From: Lennart Poettering Date: Wed, 13 Oct 2021 20:40:11 +0000 (+0200) Subject: homework: reuse home_validate_update_luks() at one more place X-Git-Tag: v250-rc1~492 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e1ab663575b205b4a9e7363fff3215d87f7d992f;p=thirdparty%2Fsystemd.git homework: reuse home_validate_update_luks() at one more place 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. --- diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c index 43174f311bf..90a49559f18 100644 --- a/src/home/homework-luks.c +++ b/src/home/homework-luks.c @@ -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; diff --git a/src/home/homework-luks.h b/src/home/homework-luks.h index 8764862bd2c..eac8f0761be 100644 --- a/src/home/homework-luks.h +++ b/src/home/homework-luks.h @@ -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); diff --git a/src/home/homework.c b/src/home/homework.c index 0c77b492e87..48ff77213b4 100644 --- a/src/home/homework.c +++ b/src/home/homework.c @@ -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)