linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* update volume_id
@ 2004-10-05 22:41 Kay Sievers
  2004-10-05 23:58 ` Greg KH
  0 siblings, 1 reply; 2+ messages in thread
From: Kay Sievers @ 2004-10-05 22:41 UTC (permalink / raw)
  To: linux-hotplug

[-- Attachment #1: Type: text/plain, Size: 128 bytes --]

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

[-- Attachment #2: udev-vid-25-01.patch --]
[-- Type: text/plain, Size: 3336 bytes --]

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 {

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-10-05 23:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-05 22:41 update volume_id Kay Sievers
2004-10-05 23:58 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).