From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Tue, 05 Oct 2004 22:41:17 +0000 Subject: update volume_id Message-Id: <20041005224117.GA7913@vrfy.org> MIME-Version: 1 Content-Type: multipart/mixed; boundary="/9DWx/yDrRhgMJTb" List-Id: To: linux-hotplug@vger.kernel.org --/9DWx/yDrRhgMJTb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline You're catching up too fast :). Here is an update to the latest volume_id which fixes a few bugs with FAT volumes. Thanks, Kay --/9DWx/yDrRhgMJTb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="udev-vid-25-01.patch" diff -Nru a/extras/volume_id/volume_id.c b/extras/volume_id/volume_id.c --- a/extras/volume_id/volume_id.c 2004-10-06 00:36:16 +02:00 +++ b/extras/volume_id/volume_id.c 2004-10-06 00:36:16 +02:00 @@ -321,7 +321,7 @@ found: strncpy(id->type_version, lvm->type, 8); id->usage_id = VOLUME_ID_RAID; - id->type_id = VOLUME_ID_LVM1; + id->type_id = VOLUME_ID_LVM2; id->type = "LVM2_member"; return 0; @@ -461,6 +461,8 @@ p = &id->partitions[i]; + p->partition_type_raw = part[i].sys_ind; + if (is_extended(part[i].sys_ind)) { dbg("found extended partition at 0x%llx", poff); p->usage_id = VOLUME_ID_PARTITIONTABLE; @@ -535,6 +537,9 @@ p->off = current + poff; p->len = plen; id->partition_count++; + + p->partition_type_raw = part[i].sys_ind; + if (id->partition_count >= VOLUME_ID_PARTITIONS_MAX) { dbg("to many partitions"); next = 0; @@ -918,13 +923,13 @@ for (i = 0; i <= root_dir_entries; i++) { /* end marker */ - if (dir[i].attr == 0x00) { + if (dir[i].name[0] == 0x00) { dbg("end of dir"); break; } /* empty entry */ - if (dir[i].attr == 0xe5) + if (dir[i].name[0] == 0xe5) continue; if (dir[i].attr == FAT_ATTR_VOLUME) { @@ -976,13 +981,13 @@ for (i = 0; i <= count; i++) { /* end marker */ - if (dir[i].attr == 0x00) { + if (dir[i].name[0] == 0x00) { dbg("end of dir"); goto fat32_label; } /* empty entry */ - if (dir[i].attr == 0xe5) + if (dir[i].name[0] == 0xe5) continue; if (dir[i].attr == FAT_ATTR_VOLUME) { @@ -1016,7 +1021,7 @@ set_label_raw(id, vs->type.fat32.label, 11); set_label_string(id, vs->type.fat32.label, 11); } - set_uuid(id, vs->type.fat32.serno, UUID_DCE); + set_uuid(id, vs->type.fat32.serno, UUID_DOS); found: id->usage_id = VOLUME_ID_FILESYSTEM; @@ -2035,20 +2040,27 @@ break; case VOLUME_ID_ALL: default: + /* probe for raid first, cause fs probes may be successful on raid members */ rc = probe_linux_raid(id, off, size); if (rc == 0) break; - - /* signature in the first block */ - rc = probe_ntfs(id, off); + rc = probe_lvm1(id, off); if (rc == 0) break; - rc = probe_vfat(id, off); + rc = probe_lvm2(id, off); if (rc == 0) break; + + /* signature in the first block, only small buffer needed */ rc = probe_msdos_part_table(id, off); if (rc == 0) break; + rc = probe_ntfs(id, off); + if (rc == 0) + break; + rc = probe_vfat(id, off); + if (rc == 0) + break; rc = probe_mac_partition_map(id, off); if (rc == 0) break; @@ -2081,12 +2093,6 @@ if (rc == 0) break; rc = probe_ufs(id, off); - if (rc == 0) - break; - rc = probe_lvm1(id, off); - if (rc == 0) - break; - rc = probe_lvm2(id, off); if (rc == 0) break; diff -Nru a/extras/volume_id/volume_id.h b/extras/volume_id/volume_id.h --- a/extras/volume_id/volume_id.h 2004-10-06 00:36:16 +02:00 +++ b/extras/volume_id/volume_id.h 2004-10-06 00:36:16 +02:00 @@ -21,7 +21,7 @@ #ifndef _VOLUME_ID_H_ #define _VOLUME_ID_H_ -#define VOLUME_ID_VERSION 024 +#define VOLUME_ID_VERSION 25 #define VOLUME_ID_LABEL_SIZE 64 #define VOLUME_ID_UUID_SIZE 16 @@ -68,6 +68,7 @@ char *type; unsigned long long off; unsigned long long len; + unsigned int partition_type_raw; }; struct volume_id { --/9DWx/yDrRhgMJTb-- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel