1dc728923Sopenharmony_cidiff --git a/lib/blkid/probe.c b/lib/blkid/probe.c 2dc728923Sopenharmony_ciindex b8b6558..1111c93 100644 3dc728923Sopenharmony_ci--- a/lib/blkid/probe.c 4dc728923Sopenharmony_ci+++ b/lib/blkid/probe.c 5dc728923Sopenharmony_ci@@ -1440,6 +1440,24 @@ static int probe_f2fs(struct blkid_probe *probe, 6dc728923Sopenharmony_ci return 0; 7dc728923Sopenharmony_ci } 8dc728923Sopenharmony_ci 9dc728923Sopenharmony_ci+static int probe_hmfs(struct blkid_probe *probe, 10dc728923Sopenharmony_ci+ struct blkid_magic *id __BLKID_ATTR((unused)), 11dc728923Sopenharmony_ci+ unsigned char *buf) 12dc728923Sopenharmony_ci+{ 13dc728923Sopenharmony_ci+ hmfs_super_block *bs = NULL; 14dc728923Sopenharmony_ci+ if (buf == NULL) { 15dc728923Sopenharmony_ci+ return -1; 16dc728923Sopenharmony_ci+ } 17dc728923Sopenharmony_ci+ bs = (hmfs_super_block *)buf; 18dc728923Sopenharmony_ci+ set_uuid(probe->dev, bs->uuid, 0); 19dc728923Sopenharmony_ci+ if (bs->volume_name[0] != 0) { 20dc728923Sopenharmony_ci+ unsigned char vol_name_utf8[513] = {0}; 21dc728923Sopenharmony_ci+ unicode_16le_to_utf8(vol_name_utf8, 512, (const unsigned char*)bs->volume_name, 512 * sizeof(__u16)); 22dc728923Sopenharmony_ci+ blkid_set_tag(probe->dev, "LABEL", vol_name_utf8, 512); 23dc728923Sopenharmony_ci+ } 24dc728923Sopenharmony_ci+ return 0; 25dc728923Sopenharmony_ci+} 26dc728923Sopenharmony_ci+ 27dc728923Sopenharmony_ci static uint64_t exfat_block_to_offset(const struct exfat_super_block *sb, 28dc728923Sopenharmony_ci uint64_t block) 29dc728923Sopenharmony_ci { 30dc728923Sopenharmony_ci@@ -1646,6 +1664,7 @@ static struct blkid_magic type_array[] = { 31dc728923Sopenharmony_ci { "lvm2pv", 1, 0x218, 8, "LVM2 001", probe_lvm2 }, 32dc728923Sopenharmony_ci { "btrfs", 64, 0x40, 8, "_BHRfS_M", probe_btrfs }, 33dc728923Sopenharmony_ci { "f2fs", 1, 0, 4, "\x10\x20\xf5\xf2", probe_f2fs }, 34dc728923Sopenharmony_ci+ { "hmfs", 1, 0, 4, "\x24\x20\xf5\xfe", probe_hmfs }, 35dc728923Sopenharmony_ci { "exfat", 0, 3, 8, "EXFAT ", probe_exfat }, 36dc728923Sopenharmony_ci { NULL, 0, 0, 0, NULL, NULL } 37dc728923Sopenharmony_ci }; 38dc728923Sopenharmony_cidiff --git a/lib/blkid/probe.h b/lib/blkid/probe.h 39dc728923Sopenharmony_ciindex dea4081..be79c42 100644 40dc728923Sopenharmony_ci--- a/lib/blkid/probe.h 41dc728923Sopenharmony_ci+++ b/lib/blkid/probe.h 42dc728923Sopenharmony_ci@@ -765,6 +765,8 @@ struct f2fs_super_block { 43dc728923Sopenharmony_ci __u8 extension_list[F2FS_MAX_EXTENSION][8]; /* extension array */ 44dc728923Sopenharmony_ci } __attribute__((__packed__)); 45dc728923Sopenharmony_ci 46dc728923Sopenharmony_ci+typedef struct f2fs_super_block hmfs_super_block; 47dc728923Sopenharmony_ci+ 48dc728923Sopenharmony_ci struct exfat_super_block { 49dc728923Sopenharmony_ci uint8_t jump[3]; 50dc728923Sopenharmony_ci uint8_t oem_name[8]; 51