From c8e989840fc3f498642ba808b2a1b4cee999ccdc Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Thu, 20 Apr 2023 13:33:20 +0000 Subject: [PATCH] zipl: add disk_is_eckd_ldl() Add a small helper to check whether a given disk is ECKD containing a Linux disk label. Signed-off-by: Sven Schnelle Acked-by: Eduard Shishkin Acked-by: Stefan Haberland Signed-off-by: Steffen Eiden --- zipl/include/disk.h | 1 + zipl/src/disk.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/zipl/include/disk.h b/zipl/include/disk.h index 0147cee5..8264fa74 100644 --- a/zipl/include/disk.h +++ b/zipl/include/disk.h @@ -95,6 +95,7 @@ int disk_get_info(const char* device, struct job_target_data* target, struct disk_info** info); int disk_is_tape(const char* device); int disk_is_scsi(const char* device, struct job_target_data* target); +int disk_is_eckd_ldl(const char* device, struct job_target_data* target); int disk_is_nvme(const char* device, struct job_target_data* target); int disk_get_info_from_file(const char* filename, struct job_target_data* target, diff --git a/zipl/src/disk.c b/zipl/src/disk.c index d57050a5..db8dcad4 100644 --- a/zipl/src/disk.c +++ b/zipl/src/disk.c @@ -509,6 +509,19 @@ disk_is_scsi(const char* device, struct job_target_data* target) return rc; } +int disk_is_eckd_ldl(const char *device, struct job_target_data *target) +{ + struct disk_info *info; + int rc = 0; + + if (disk_get_info(device, target, &info) == -1) + return 0; + if (info->type == disk_type_eckd_ldl) + rc = 1; + disk_free_info(info); + return rc; +} + int disk_is_nvme(const char* device, struct job_target_data* target) {