linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] scsi_id changes for use with udev %N and %p
@ 2005-02-11 18:11 Patrick Mansfield
  2005-02-11 18:40 ` Greg KH
  2005-02-11 18:46 ` Patrick Mansfield
  0 siblings, 2 replies; 3+ messages in thread
From: Patrick Mansfield @ 2005-02-11 18:11 UTC (permalink / raw)
  To: linux-hotplug

Changes to scsi_id to support the udev %N and %p substitutions:

- Update version from .7 to .8

- change TMP_DIR back to /tmp

- if DEVPATH is set assume hotplug_mode (use syslog for logging, and does
  not output some warnings) 

- Always output a newline after the id is printed

- Allow command line options to override settings when hotplug_mode is set

- update man page

- update generator script to use the %N and %p substitutions.

=== extras/scsi_id/Makefile 1.11 vs edited ==--- 1.11/extras/scsi_id/Makefile	Fri Oct 15 04:40:48 2004
+++ edited/extras/scsi_id/Makefile	Thu Feb 10 10:41:37 2005
@@ -14,7 +14,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
-SCSI_ID_VERSION=0.7
+SCSI_ID_VERSION=0.8
 
 prefix  etcdir =        ${prefix}/etc
=== extras/scsi_id/gen_scsi_id_udev_rules.sh 1.2 vs edited ==--- 1.2/extras/scsi_id/gen_scsi_id_udev_rules.sh	Tue Mar  2 08:35:19 2004
+++ edited/extras/scsi_id/gen_scsi_id_udev_rules.sh	Thu Feb 10 11:56:32 2005
@@ -60,7 +60,7 @@
 	if [ $first_line = "yes" ]
 	then
 		first_line=no
-		echo "BUS=\"scsi\", PROGRAM=\"${scsi_id}\", RESULT=\"${id}\", NAME=\"${prefix}${name}%n\""
+		echo "BUS=\"scsi\", PROGRAM=\"${scsi_id} -d %N -s %p\", RESULT=\"${id}\", NAME=\"${prefix}${name}%n\""
 		echo
 		echo "# Further RESULT keys use the result of the last PROGRAM rule."
 		echo "# Be careful not to add any rules containing PROGRAM key between here"
=== extras/scsi_id/scsi_id.8 1.4 vs edited ==--- 1.4/extras/scsi_id/scsi_id.8	Fri Jul 30 03:23:53 2004
+++ edited/extras/scsi_id/scsi_id.8	Thu Feb 10 12:43:21 2005
@@ -53,9 +53,10 @@
 .SH OPTIONS
 .TP
 .BI subsystem
-When called with only a single argument without a leading \-, runs in a hotplug
-mode, and expects the environment variable DEVPATH to specify the
-corresponding sysfs device. See section below on usage with \fBudev\fP.
+Deprecated method: when called with only a single argument without a
+leading \-, runs in a hotplug mode, and expects the environment variable
+DEVPATH to specify the corresponding sysfs device. See section below on
+usage with \fBudev\fP.
 .TP
 .BI \-b
 The default behaviour \- treat the device as black listed, and do nothing
@@ -66,6 +67,8 @@
 of determining and creating a device node based on a sysfs dev
 entry as done for the \fB\-s\fP, send SG_IO commands to 
 \fBdevice\fP, such as \fB/dev/sdc\fP.
+This argument should also be used when invoked via udev to avoid problems
+with creation of temporary files on not-yet writable directories.
 .TP
 .BI \-f "\| config\-file"
 Read configuration and black/white list entries from
@@ -106,15 +109,15 @@
 .RE
 
 .SH USAGE WITH UDEV 
+
 If \fBscsi_id\fP is invoked with one argument without a leading \-, it
 assumes it is called for a hotplug event, and looks for the sysfs device
-in the DEVPATH environment variable. 
-
-This mode is used when run via the \fBudev\fP PROGRAM key. Passing any
-arguments or options as part of the PROGRAM rule breaks this assumption,
-and the results will likely not be as expected.
+in the DEVPATH environment variable. This mode is deprecated, but
+available for backwards compatibility.
 
-When in this mode, all errors and warnings are sent via syslog.
+If the DEVPATH environment variable is set, scsi_id assumes it has been
+invoked via udev (or some other hotplug program), and all errors or
+warnings are sent using syslog.
 
 To determine the specific value needed in a RESULT key, use the \-s option,
 for example:
@@ -131,7 +134,7 @@
 
 .sp
 .nf
-BUS="scsi", PROGRAM="/sbin/scsi_id", RESULT="312345", NAME="disk%n"
+BUS="scsi", PROGRAM="/sbin/scsi_id -d %N -s %p", RESULT="312345", NAME="disk%n"
 .fi
 .P
 
=== extras/scsi_id/scsi_id.c 1.11 vs edited ==--- 1.11/extras/scsi_id/scsi_id.c	Sat Feb  5 08:01:28 2005
+++ edited/extras/scsi_id/scsi_id.c	Thu Feb 10 13:08:47 2005
@@ -44,8 +44,8 @@
 /*
  * temporary names for mknod.
  */
-#define TMP_DIR	"/dev"
-#define TMP_PREFIX "tmp-scsi"
+#define TMP_DIR	"/tmp"
+#define TMP_PREFIX "scsi"
 
 /*
  * XXX Note the 'e' (send output to stderr in all cases), and 'c' (callout)
@@ -736,9 +736,7 @@
 			format_serial(serial);
 		if (display_bus_id)
 			printf("%s: ", scsi_dev->name);
-		printf("%s", serial);
-		if (!hotplug_mode)
-			printf("\n");
+		printf("%s\n", serial);
 		dprintf("%s\n", serial);
 		retval = 0;
 	}
@@ -762,11 +760,6 @@
 	if (getenv("DEBUG"))
 		debug++;
 
-	if ((argc = 2) && (argv[1][0] != '-')) {
-		hotplug_mode = 1;
-		dprintf("hotplug assumed\n");
-	}
-
 	dprintf("argc is %d\n", argc);
 	if (sysfs_get_mnt_path(sysfs_mnt_path, MAX_NAME_LEN)) {
 		log_message(LOG_WARNING, "sysfs_get_mnt_path failed: %s\n",
@@ -774,27 +767,19 @@
 		exit(1);
 	}
 
-	if (hotplug_mode) {
+	devpath = getenv("DEVPATH");
+	if (devpath) {
 		/*
-		 * There is a kernel race creating attributes, if called
-		 * directly, uncomment the sleep.
+		 * This implies that we were invoked via udev or hotplug.
 		 */
-		/* sleep(1); */
-
-		devpath = getenv("DEVPATH");
-		if (!devpath) {
-			log_message(LOG_WARNING, "DEVPATH is not set\n");
-			exit(1);
-		}
+		hotplug_mode = 1;
 		sys_specified = 1;
-
 		strncpy(target_path, sysfs_mnt_path, MAX_NAME_LEN);
 		strncat(target_path, devpath, MAX_NAME_LEN);
 	}
 
 	/*
-	 * Override any command line options set via the config file. This
-	 * is the only way to set options when in hotplug mode.
+	 * Get config file options.
 	 */
 	newargv = NULL;
 	retval = get_file_options(NULL, NULL, &newargc, &newargv);
@@ -806,11 +791,13 @@
 			exit(1);
 		free(newargv);
 	}
-	if (!hotplug_mode) {
-		if (set_options(argc, argv, short_options, target_path,
-				maj_min_dev) < 0)
+	/*
+	 * Get command line options (overriding any config file or DEVPATH
+	 * settings).
+	 */
+	if (set_options(argc, argv, short_options, target_path,
+			maj_min_dev) < 0)
 		exit(1);
-	}
 
 	if (!sys_specified) {
 		log_message(LOG_WARNING, "-s must be specified\n");


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
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

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

* Re: [PATCH] scsi_id changes for use with udev %N and %p
  2005-02-11 18:11 [PATCH] scsi_id changes for use with udev %N and %p Patrick Mansfield
@ 2005-02-11 18:40 ` Greg KH
  2005-02-11 18:46 ` Patrick Mansfield
  1 sibling, 0 replies; 3+ messages in thread
From: Greg KH @ 2005-02-11 18:40 UTC (permalink / raw)
  To: linux-hotplug

On Fri, Feb 11, 2005 at 10:11:20AM -0800, Patrick Mansfield wrote:
> Changes to scsi_id to support the udev %N and %p substitutions:
> 
> - Update version from .7 to .8
> 
> - change TMP_DIR back to /tmp
> 
> - if DEVPATH is set assume hotplug_mode (use syslog for logging, and does
>   not output some warnings) 
> 
> - Always output a newline after the id is printed
> 
> - Allow command line options to override settings when hotplug_mode is set
> 
> - update man page
> 
> - update generator script to use the %N and %p substitutions.

Applied, thanks.

Are there any other changes you want to make before I do a new release?

thanks,

greg k-h


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
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

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

* Re: [PATCH] scsi_id changes for use with udev %N and %p
  2005-02-11 18:11 [PATCH] scsi_id changes for use with udev %N and %p Patrick Mansfield
  2005-02-11 18:40 ` Greg KH
@ 2005-02-11 18:46 ` Patrick Mansfield
  1 sibling, 0 replies; 3+ messages in thread
From: Patrick Mansfield @ 2005-02-11 18:46 UTC (permalink / raw)
  To: linux-hotplug

On Fri, Feb 11, 2005 at 10:40:34AM -0800, Greg KH wrote:

> Applied, thanks.
> 
> Are there any other changes you want to make before I do a new release?

No, that is it.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
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

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

end of thread, other threads:[~2005-02-11 18:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-11 18:11 [PATCH] scsi_id changes for use with udev %N and %p Patrick Mansfield
2005-02-11 18:40 ` Greg KH
2005-02-11 18:46 ` Patrick Mansfield

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