From eb82b76dedc1482b6434c46fee84d3ef13cb9648 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Sat, 5 Aug 2006 00:02:58 +0200 Subject: [PATCH] libvolume_id: read ufs2 label Taken from the FreeBSD HAL repository. --- extras/volume_id/lib/Makefile | 2 +- extras/volume_id/lib/ufs.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/extras/volume_id/lib/Makefile b/extras/volume_id/lib/Makefile index f53e5f114..e5fd5fcdd 100644 --- a/extras/volume_id/lib/Makefile +++ b/extras/volume_id/lib/Makefile @@ -13,7 +13,7 @@ INSTALL_DATA = ${INSTALL} -m 644 INSTALL_LIB = ${INSTALL} -m 755 SHLIB_CUR = 0 -SHLIB_REV = 68 +SHLIB_REV = 69 SHLIB_AGE = 0 SHLIB = libvolume_id.so.$(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE) diff --git a/extras/volume_id/lib/ufs.c b/extras/volume_id/lib/ufs.c index 2713a63d4..4ace8c99f 100644 --- a/extras/volume_id/lib/ufs.c +++ b/extras/volume_id/lib/ufs.c @@ -205,6 +205,18 @@ int volume_id_probe_ufs(struct volume_id *id, uint64_t off, uint64_t size) found: volume_id_set_usage(id, VOLUME_ID_FILESYSTEM); id->type = "ufs"; + switch (magic) { + case UFS_MAGIC: + strcpy(id->type_version, "1"); + break; + case UFS2_MAGIC: + strcpy(id->type_version, "2"); + volume_id_set_label_raw(id, ufs->fs_u11.fs_u2.fs_volname, 32); + volume_id_set_label_string(id, ufs->fs_u11.fs_u2.fs_volname, 32); + break; + default: + break; + } return 0; } -- 2.30.2