From: Kay Sievers Date: Fri, 4 Aug 2006 22:02:58 +0000 (+0200) Subject: libvolume_id: read ufs2 label X-Git-Tag: 174~2217 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=eb82b76dedc1482b6434c46fee84d3ef13cb9648 libvolume_id: read ufs2 label Taken from the FreeBSD HAL repository. --- 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; }