linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* swich attribute open() to simple stat()
@ 2004-10-15 17:36 Kay Sievers
  2004-10-15 18:48 ` Greg KH
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Kay Sievers @ 2004-10-15 17:36 UTC (permalink / raw)
  To: linux-hotplug

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

Here we switch to a simple stat() to recognize the file creation. This
will make it possible to wait for files, which are unreadable.

I've switched the timout back to 5 seconds cause the our /class/vc errors
seems like a bug in the vc layer not a sysfs delay.

Thanks,
Kay

[-- Attachment #2: udev-stat-instead-open.patch --]
[-- Type: text/plain, Size: 1451 bytes --]

===== wait_for_sysfs.c 1.18 vs edited =====
--- 1.18/wait_for_sysfs.c	2004-10-14 16:14:00 +02:00
+++ edited/wait_for_sysfs.c	2004-10-15 19:32:38 +02:00
@@ -47,7 +47,7 @@ void log_message(int level, const char *
 }
 #endif
 
-#define WAIT_MAX_SECONDS		10
+#define WAIT_MAX_SECONDS		5
 #define WAIT_LOOP_PER_SECOND		20
 
 /* wait for specific file to show up, normally the "dev"-file */
@@ -60,7 +60,7 @@ static int wait_for_class_device_attribu
 		{ .subsystem = "net",		.file = "ifindex" },
 		{ .subsystem = "scsi_host",	.file = "unique_id" },
 		{ .subsystem = "scsi_device",	.file = NULL },
-		{ .subsystem = "pcmcia_socket",	.file = NULL }, /* all files are unreadable in empty slot :( */
+		{ .subsystem = "pcmcia_socket",	.file = "card_type" },
 		{ .subsystem = "usb_host",	.file = NULL },
 		{ .subsystem = "bluetooth",	.file = "address" },
 		{ .subsystem = "firmware",	.file = "data" },
@@ -86,11 +86,14 @@ static int wait_for_class_device_attribu
 			break;
 		}
 	}
-	dbg("looking at class '%s' for specific file '%s'", class_dev->classname, file);
+
+	dbg("looking at class '%s' for specific file '%s'", class_dev->classname, class_dev->path);
 
 	loop = WAIT_MAX_SECONDS * WAIT_LOOP_PER_SECOND;
 	while (--loop) {
-		if (sysfs_get_classdev_attr(class_dev, file) != NULL) {
+		struct stat stats;
+
+		if (stat(class_dev->path, &stats) == 0) {
 			dbg("class '%s' specific file '%s' found", class_dev->classname, file);
 			return 0;
 		}

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

end of thread, other threads:[~2004-10-15 22:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-15 17:36 swich attribute open() to simple stat() Kay Sievers
2004-10-15 18:48 ` Greg KH
2004-10-15 20:55 ` Greg KH
2004-10-15 21:58 ` Greg KH
2004-10-15 22:38 ` Kay Sievers

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).