aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorliminghao <liminghao@xiaomi.com>2017-04-10 09:48:51 +0800
committerminghao lee <liminghao@xiaomi.com>2017-06-21 08:37:38 +0000
commit91e756e829362c66265334e2e20fb3604586ce8b (patch)
tree6a764e512aabd5c74cf236908d878f3ff090027c /lib
parent7975672f634b603c4b4ff614e046c4e18b4561c6 (diff)
downloade2fsprogs-91e756e829362c66265334e2e20fb3604586ce8b.tar.gz
blkid: Resolve to the exFAT uuid change on reboot.
The volume_serial into exFAT super block is uuid but not standard uuid, it's just volume serial number. Change-Id: I376ed9fe1ba1b7f3d367d78cc5e2bb8ea9cc2d13 Signed-off-by: liminghao <liminghao@xiaomi.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/blkid/probe.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c
index fae74a7f..3bcf4c3d 100644
--- a/lib/blkid/probe.c
+++ b/lib/blkid/probe.c
@@ -1473,6 +1473,7 @@ static int probe_exfat(struct blkid_probe *probe, struct blkid_magic *id,
struct exfat_super_block *sb;
struct exfat_entry_label *label;
uuid_t uuid;
+
sb = (struct exfat_super_block *)buf;
if (!sb || !CLUSTER_SIZE(sb)) {
DBG(DEBUG_PROBE, printf("bad exfat superblock.\n"));
@@ -1486,11 +1487,11 @@ static int probe_exfat(struct blkid_probe *probe, struct blkid_magic *id,
blkid_set_tag(probe->dev, "LABEL", "disk", 4);
}
+ memset(uuid, 0, sizeof (uuid));
snprintf(uuid, sizeof (uuid), "%02hhX%02hhX-%02hhX%02hhX",
sb->volume_serial[3], sb->volume_serial[2],
sb->volume_serial[1], sb->volume_serial[0]);
-
- set_uuid(probe->dev, uuid, 0);
+ blkid_set_tag(probe->dev, "UUID", uuid, strlen(uuid));
return 0;
}