diff options
Diffstat (limited to 'core/cryptsetup/0002-Re-check-flags-after-DM-device-creations.patch')
-rw-r--r-- | core/cryptsetup/0002-Re-check-flags-after-DM-device-creations.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/core/cryptsetup/0002-Re-check-flags-after-DM-device-creations.patch b/core/cryptsetup/0002-Re-check-flags-after-DM-device-creations.patch new file mode 100644 index 000000000..b6c0005e9 --- /dev/null +++ b/core/cryptsetup/0002-Re-check-flags-after-DM-device-creations.patch @@ -0,0 +1,62 @@ +From 3640eaa726b7a9d761f1c67cd8620153d791688e Mon Sep 17 00:00:00 2001 +From: Milan Broz <gmazyland@gmail.com> +Date: Thu, 24 Jul 2014 11:52:58 +0200 +Subject: [PATCH 2/3] Re-check flags after DM device creations. +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + lib/libdevmapper.c | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/lib/libdevmapper.c b/lib/libdevmapper.c +index 8e5a696..6138a6b 100644 +--- a/lib/libdevmapper.c ++++ b/lib/libdevmapper.c +@@ -566,6 +566,9 @@ static int _dm_create_device(const char *name, const char *type, + uint32_t cookie = 0; + uint16_t udev_flags = 0; + ++ if (!params) ++ return -EINVAL; ++ + if (flags & CRYPT_ACTIVATE_PRIVATE) + udev_flags = CRYPT_TEMP_UDEV_FLAGS; + +@@ -646,6 +649,10 @@ out_no_removal: + dm_task_destroy(dmt); + + dm_task_update_nodes(); ++ ++ /* If code just loaded target module, update versions */ ++ _dm_check_versions(); ++ + return r; + } + +@@ -655,7 +662,7 @@ int dm_create_device(struct crypt_device *cd, const char *name, + int reload) + { + char *table_params = NULL; +- int r = -EINVAL; ++ int r; + + if (!type) + return -EINVAL; +@@ -668,10 +675,9 @@ int dm_create_device(struct crypt_device *cd, const char *name, + else if (dmd->target == DM_VERITY) + table_params = get_dm_verity_params(dmd->u.verity.vp, dmd); + +- if (table_params) +- r = _dm_create_device(name, type, dmd->data_device, +- dmd->flags, dmd->uuid, dmd->size, +- table_params, reload); ++ r = _dm_create_device(name, type, dmd->data_device, ++ dmd->flags, dmd->uuid, dmd->size, ++ table_params, reload); + + crypt_safe_free(table_params); + dm_exit_context(); +-- +2.0.1 + |