summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2006-08-05 00:02:58 +0200
committerKay Sievers <kay.sievers@suse.de>2006-08-05 00:02:58 +0200
commiteb82b76dedc1482b6434c46fee84d3ef13cb9648 (patch)
treef21493d9ce182f42187afa2643b83e423311b562
parentb5adfb4f3387a5dcfcdb5a5996c249b1d14aa44a (diff)
libvolume_id: read ufs2 label
Taken from the FreeBSD HAL repository.
-rw-r--r--extras/volume_id/lib/Makefile2
-rw-r--r--extras/volume_id/lib/ufs.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/extras/volume_id/lib/Makefile b/extras/volume_id/lib/Makefile
index f53e5f1141..e5fd5fcddd 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 2713a63d4d..4ace8c99fd 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;
}