mirror of
https://gitlab.com/cryptsetup/cryptsetup.git
synced 2025-12-05 16:00:05 +01:00
committed by
Milan Broz
parent
99c4e83994
commit
86bb4ea8f2
@@ -307,3 +307,17 @@ int blk_supported(void)
|
||||
#endif
|
||||
return r;
|
||||
}
|
||||
|
||||
off_t blk_get_offset(struct blkid_handle *h)
|
||||
{
|
||||
const char *offset;
|
||||
off_t offset_value = -1;
|
||||
#ifdef HAVE_BLKID
|
||||
if (blk_is_superblock(h)) {
|
||||
if (!blkid_probe_lookup_value(h->pr, "SBMAGIC_OFFSET", &offset, NULL))
|
||||
offset_value = strtoll(offset, NULL, 10);
|
||||
} else if (blk_is_partition(h) && !blkid_probe_lookup_value(h->pr, "PTMAGIC_OFFSET", &offset, NULL))
|
||||
offset_value = strtoll(offset, NULL, 10);
|
||||
#endif
|
||||
return offset_value;
|
||||
}
|
||||
|
||||
@@ -59,4 +59,6 @@ int blk_do_wipe(struct blkid_handle *h);
|
||||
|
||||
int blk_supported(void);
|
||||
|
||||
off_t blk_get_offset(struct blkid_handle *h);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -563,11 +563,11 @@ int tools_wipe_all_signatures(const char *path)
|
||||
|
||||
while ((pr = blk_probe(h)) < PRB_EMPTY) {
|
||||
if (blk_is_partition(h))
|
||||
log_verbose("Existing '%s' partition signature on device %s will be wiped.",
|
||||
blk_get_partition_type(h), path);
|
||||
log_verbose("Existing '%s' partition signature (offset: %" PRIi64 " bytes) on device %s will be wiped.",
|
||||
blk_get_partition_type(h), blk_get_offset(h), path);
|
||||
if (blk_is_superblock(h))
|
||||
log_verbose("Existing '%s' superblock signature on device %s will be wiped.",
|
||||
blk_get_superblock_type(h), path);
|
||||
log_verbose("Existing '%s' superblock signature (offset: %" PRIi64 " bytes) on device %s will be wiped.",
|
||||
blk_get_superblock_type(h), blk_get_offset(h), path);
|
||||
if (blk_do_wipe(h)) {
|
||||
log_err(_("Failed to wipe device signature."));
|
||||
r = -EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user