Create a wrapper/helper that can be used to call the storage backend wipe helper - storageBackendVolWipeLocalFile for future use by logical and disk backends to clear out the partition table rather than having each open code the same algorithm. Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/storage/storage_util.c | 22 ++++++++++++++++++++++ src/storage/storage_util.h | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index c1734e7..d7394d6 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -4111,3 +4111,25 @@ virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, return found; } + + +/* + * @path: Path to the device to initialize + * @size: Size to be cleared + * + * Zero out possible partition table information for the specified + * bytes from the start of the @path and from the end of @path + * + * Returns 0 on success, -1 on failure with error message set + */ +int +virStorageBackendZeroPartitionTable(const char *path, + unsigned long long size) +{ + if (storageBackendVolWipeLocalFile(path, VIR_STORAGE_VOL_WIPE_ALG_ZERO, + size, false) < 0) + return -1; + + return storageBackendVolWipeLocalFile(path, VIR_STORAGE_VOL_WIPE_ALG_ZERO, + size, true); +} diff --git a/src/storage/storage_util.h b/src/storage/storage_util.h index 602d3a0..a05c35d 100644 --- a/src/storage/storage_util.h +++ b/src/storage/storage_util.h @@ -167,4 +167,8 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn, int virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, uint32_t scanhost); +int +virStorageBackendZeroPartitionTable(const char *path, + unsigned long long size); + #endif /* __VIR_STORAGE_UTIL_H__ */ -- 2.9.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list