From: Patrick Mansfield <patmans@us.ibm.com>
To: linux-hotplug@vger.kernel.org
Subject: [PATCH] scsi_id changes for use with udev %N and %p
Date: Fri, 11 Feb 2005 18:11:20 +0000 [thread overview]
Message-ID: <20050211181120.GA8389@us.ibm.com> (raw)
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
next reply other threads:[~2005-02-11 18:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-11 18:11 Patrick Mansfield [this message]
2005-02-11 18:40 ` [PATCH] scsi_id changes for use with udev %N and %p Greg KH
2005-02-11 18:46 ` Patrick Mansfield
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050211181120.GA8389@us.ibm.com \
--to=patmans@us.ibm.com \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.