diff --git a/src/cryptsetup.c b/src/cryptsetup.c index 0cd82df0..46748aae 100644 --- a/src/cryptsetup.c +++ b/src/cryptsetup.c @@ -206,7 +206,7 @@ static int action_open_plain(void) /* Skip blkid scan when activating plain device with offset */ if (!ARG_UINT64(OPT_OFFSET_ID)) { /* Print all present signatures in read-only mode */ - r = tools_detect_signatures(action_argv[0], 0, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); + r = tools_detect_signatures(action_argv[0], PRB_FILTER_NONE, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); if (r < 0) goto out; } @@ -1156,7 +1156,7 @@ static int action_luksRepair(void) goto out; } - r = tools_detect_signatures(action_argv[0], 1, NULL, ARG_SET(OPT_BATCH_MODE_ID)); + r = tools_detect_signatures(action_argv[0], PRB_FILTER_LUKS, NULL, ARG_SET(OPT_BATCH_MODE_ID)); if (r < 0) goto out; @@ -1340,7 +1340,7 @@ int luksFormat(struct crypt_device **r_cd, char **r_password, size_t *r_password } /* Print all present signatures in read-only mode */ - r = tools_detect_signatures(header_device, 0, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); + r = tools_detect_signatures(header_device, PRB_FILTER_NONE, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); if (r < 0) goto out; diff --git a/src/cryptsetup.h b/src/cryptsetup.h index 0036185d..0c7ea31e 100644 --- a/src/cryptsetup.h +++ b/src/cryptsetup.h @@ -110,7 +110,12 @@ int tools_write_mk(const char *file, const char *key, int keysize); int tools_read_json_file(const char *file, char **json, size_t *json_size, bool batch_mode); int tools_write_json_file(const char *file, const char *json); -int tools_detect_signatures(const char *device, int ignore_luks, size_t *count, bool batch_mode); +typedef enum { + PRB_FILTER_NONE = 0, + PRB_FILTER_LUKS +} tools_probe_filter_info; + +int tools_detect_signatures(const char *device, tools_probe_filter_info filter, size_t *count, bool batch_mode); int tools_wipe_all_signatures(const char *path); int tools_lookup_crypt_device(struct crypt_device *cd, const char *type, diff --git a/src/integritysetup.c b/src/integritysetup.c index 1130c1da..98c6bde9 100644 --- a/src/integritysetup.c +++ b/src/integritysetup.c @@ -185,7 +185,7 @@ static int action_format(void) goto out; } - r = tools_detect_signatures(action_argv[0], 0, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); + r = tools_detect_signatures(action_argv[0], PRB_FILTER_NONE, &signatures, ARG_SET(OPT_BATCH_MODE_ID)); if (r < 0) goto out; diff --git a/src/utils_blockdev.c b/src/utils_blockdev.c index 5d804d93..cfac2e09 100644 --- a/src/utils_blockdev.c +++ b/src/utils_blockdev.c @@ -197,7 +197,8 @@ static void report_superblock(const char *value, const char *device, bool batch_ log_std(_("WARNING: Device %s already contains a '%s' superblock signature.\n"), device, value); } -int tools_detect_signatures(const char *device, int ignore_luks, size_t *count, bool batch_mode) +int tools_detect_signatures(const char *device, tools_probe_filter_info filter, + size_t *count,bool batch_mode) { int r; size_t tmp_count; @@ -221,7 +222,7 @@ int tools_detect_signatures(const char *device, int ignore_luks, size_t *count, blk_set_chains_for_full_print(h); - if (ignore_luks && blk_superblocks_filter_luks(h)) { + if (filter == PRB_FILTER_LUKS && blk_superblocks_filter_luks(h)) { r = -EINVAL; goto out; }