chiark / gitweb /
17 years ago[PATCH] 010_bk stamp [Thu, 25 Dec 2003 07:56:29 +0000 (23:56 -0800)]
[PATCH] 010_bk stamp

17 years ago[PATCH] added different build options to the rpm udev.spec file. [Thu, 25 Dec 2003 07:38:58 +0000 (23:38 -0800)]
[PATCH] added different build options to the rpm udev.spec file.

17 years ago[PATCH] fix udev sed Makefile usage [Thu, 25 Dec 2003 07:01:40 +0000 (23:01 -0800)]
[PATCH] fix udev sed Makefile usage

17 years ago[PATCH] proper cleanup on udevdb_init() failure [Thu, 25 Dec 2003 06:58:16 +0000 (22:58 -0800)]
[PATCH] proper cleanup on udevdb_init() failure

Seems like we need the following patch to do
proper sysbus cleanup, if udevdb_init() fails.

17 years ago[PATCH] patch udev 009-010 rpm spec file [Thu, 25 Dec 2003 06:54:39 +0000 (22:54 -0800)]
[PATCH] patch udev 009-010 rpm spec file

the following problem was introduced with udev 009:

[root@claw packages]# rpm -Uvh ~mh/rpm/RPMS/ppc/udev-010-1.ppc.rpm
Preparing...########################################### [100%]
   1:udev   ########################################### [100%]
error: unpacking of archive failed on file /usr/share/doc/udev-010/COPYING;3fe8a8e3: cpio: open failed - Permission denied

it's because the mode of the directory /usr/share/doc/udev-010/ is
0644. This is with yellodog-3.0.

the following patch fixes it:

17 years ago[PATCH] add pci to the bus_files list. [Thu, 25 Dec 2003 06:51:16 +0000 (22:51 -0800)]
[PATCH] add pci to the bus_files list.

17 years ago[PATCH] check for empty line a bit better in the parser. [Thu, 25 Dec 2003 05:48:18 +0000 (21:48 -0800)]
[PATCH] check for empty line a bit better in the parser.

Thanks to Mitch <> for pointing this out.

17 years ago[PATCH] more init script cleanups, the stop target now calls udev to cleanup instead... [Thu, 25 Dec 2003 05:47:14 +0000 (21:47 -0800)]
[PATCH] more init script cleanups, the stop target now calls udev to cleanup instead of just removing the whole /udev directory.

17 years ago[PATCH] make udev init script run udev in the background to let startup go much faster [Thu, 25 Dec 2003 05:25:40 +0000 (21:25 -0800)]
[PATCH] make udev init script run udev in the background to let startup go much faster

17 years ago[PATCH] fix long delay for all devices in namedev [Thu, 25 Dec 2003 03:44:19 +0000 (19:44 -0800)]
[PATCH] fix long delay for all devices in namedev

Now we only sleep if we can't find the device file, and we have
a hack to sleep for 1 second if we are on a partition.  This will be
removed when the libsysfs change gets made...

17 years ago[PATCH] v010 release 010 [Tue, 23 Dec 2003 08:33:29 +0000 (00:33 -0800)]
[PATCH] v010 release

17 years ago[PATCH] fix [Tue, 23 Dec 2003 07:30:51 +0000 (23:30 -0800)]
[PATCH] fix

Here is a small fix for, to print the METHOD also
for the "whitespace config" tests.

  TEST: Handle comment lines in config file (and replace kernel name)
  method '' for 'class/tty/ttyUSB0' expecting node 'visor'
  add: ok    remove: ok

17 years ago[PATCH] small cleanup udev-remove.c [Tue, 23 Dec 2003 06:47:58 +0000 (22:47 -0800)]
[PATCH] small cleanup udev-remove.c

Here is a small cleanup. It replaces the malloc in udev-remove.c
with a struct, like we do in udev-add.c

17 years ago[PATCH] fix complier warning in namedev.c [Tue, 23 Dec 2003 06:45:43 +0000 (22:45 -0800)]
[PATCH] fix complier warning in namedev.c

17 years ago[PATCH] add documentation for the new '%k' modifier (kernel name replacement) [Tue, 23 Dec 2003 06:40:19 +0000 (22:40 -0800)]
[PATCH] add documentation for the new '%k' modifier (kernel name replacement)

17 years ago[PATCH] add documentation about the multiple sysfs values that are now allowed for... [Tue, 23 Dec 2003 06:36:10 +0000 (22:36 -0800)]
[PATCH] add documentation about the multiple sysfs values that are now allowed for the LABEL rule.

17 years ago[PATCH] add tests for multi-file LABEL rules. [Tue, 23 Dec 2003 06:32:06 +0000 (22:32 -0800)]
[PATCH] add tests for multi-file LABEL rules.

17 years ago[PATCH] add ability to have up to 5 SYSFS_ file/value pairs for the LABEL rule. [Tue, 23 Dec 2003 06:31:35 +0000 (22:31 -0800)]
[PATCH] add ability to have up to 5 SYSFS_ file/value pairs for the LABEL rule.

17 years ago[PATCH] change pgsize [Tue, 23 Dec 2003 04:54:51 +0000 (20:54 -0800)]
[PATCH] change pgsize

In udev-009 and previous releases, for klibc compatibility, the pgsize var
in sysfs_read_attribute() (file sysfs_dir.c under libsysfs) is handcoded
to 0x4000.

Should it not be 4096 bytes (0x1000 in hex) instead of 0x4000 (16k bytes)?

17 years ago[PATCH] extras multipath update [Tue, 23 Dec 2003 04:53:55 +0000 (20:53 -0800)]
[PATCH] extras multipath update

 incremental to 20031222-2,

 2003-12-22 multipath-010
        * tweak the install target in Makefile
        * stop passing fds as argument : this change enable a strict
          segregation of ugly 2.4 code
        * sysfs version of get_lun_strings()
        * be careful about the return of get_unique_id() since errors
          formerly caught up by if(open()) in the caller fn are now returned
          by get_unique_id()
        * send get_serial() in unused.c

17 years ago[PATCH] extras multipath update [Tue, 23 Dec 2003 04:52:01 +0000 (20:52 -0800)]
[PATCH] extras multipath update

 incremental to 20031222,

 2003-12-22 multipath-010
        * introduce dm-simplecmd for RESUME & SUSPEND requests
        * split add_map() in setup_map() & dm-addmap()
        * setup_map() correctly submits "SUSPEND-RELOAD-RESUME or CREATE"
          sequences instead of the bogus "RELOAD or CREATE"

17 years ago[PATCH] extras multipath update [Tue, 23 Dec 2003 04:49:48 +0000 (20:49 -0800)]
[PATCH] extras multipath update

 incremental to 20031220,

 2003-12-22 multipath-010
        * don't print .sg_dev if equal to .dev (2.6) in print_path()
        * since the kernel code handles defective paths, remove all
          code to cope with them :
                * move do_tur() to unused.c
                * remove .state from path struct
                * remove .state settings & conditionals
        * add a cmdline switch to force maps to failover mode,
          ie 1 path per priority group
        * add default policies to the whitelist array (spread io ==
          MULTIBUS / io forced to 1 path == FAILOVER)
        * move get_disk_size() call out of add_map() to coalesce()
        * comment tricky coalesce() fn
        * bogus unsused.c file renamed to unused.c

17 years ago[PATCH] extras multipath update [Tue, 23 Dec 2003 04:49:22 +0000 (20:49 -0800)]
[PATCH] extras multipath update

An important one, against stock udev-009 :

 2003-12-20 multipath-010
        * big ChangeLog update
        * start to give a little control over target params :
          introduce cmdline arg -i to control polling interval
        * cope with hotplug-style calling convention :
          ie "multipath scsi $DEVPATH" ... to avoid messing with
          online maps not concerned by an event
        * example hotplug agent to drop in /etc/hotplug.d/scsi
        * revert the run & resched patch : unless someone proves me
          wrong, this was overdesigned
        * move commented out functions in unused.c
        * update multipath target params to "udm[23] style"
        * mp target now supports nr_path == 1, so do we
        * add gratuitous free()
        * push version forward

17 years ago[PATCH] experimental CALLOUT script for devfs ide node creation with cd, disc, part [Tue, 23 Dec 2003 04:34:53 +0000 (20:34 -0800)]
[PATCH] experimental CALLOUT script for devfs ide node creation with cd, disc, part

Here is a experimental CALLOUT script for udev to create devfs nodes
for IDE-devices. Not that I need these, I just wanted to see if it works :)

The script is really stupid, no error handling, nothing more than
absolutely needed. The rule uses the 'k' format char of the previous
patch. The %D is not used, so the user can have disc or disk :)

this single line:
  CALLOUT, BUS="ide", PROGRAM="/etc/udev/ %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c"

creates the following on my machine with two hard disks, one DVD and a PCMCIA-compact-flash inserted:
  |-- hda
  |-- hda1
  |-- hda2
  |-- hda4
  |-- hdb
  |-- hdb1
  |-- hdc
  |-- hde
  |-- hde1
  `-- ide
      |-- host0
      |   |-- bus0
      |   |   |-- target0
      |   |   |   `-- lun0
      |   |   |       |-- disc -> ../../../../../hda
      |   |   |       |-- part1 -> ../../../../../hda1
      |   |   |       |-- part2 -> ../../../../../hda2
      |   |   |       `-- part4 -> ../../../../../hda4
      |   |   `-- target1
      |   |       `-- lun0
      |   |           |-- disc -> ../../../../../hdb
      |   |           `-- part1 -> ../../../../../hdb1
      |   `-- bus1
      |       `-- target0
      |           `-- lun0
      |               `-- cd -> ../../../../../hdc
      `-- host2
          `-- bus0
              `-- target0
                  `-- lun0
                      |-- disc -> ../../../../../hde
                      `-- part1 -> ../../../../../hde1

17 years ago[PATCH] add any valid device [Tue, 23 Dec 2003 03:16:19 +0000 (19:16 -0800)]
[PATCH] add any valid device

17 years ago[PATCH] introduce format char 'k' for kernel-name [Tue, 23 Dec 2003 03:13:19 +0000 (19:13 -0800)]
[PATCH] introduce format char 'k' for kernel-name

Attached is a patch that introduces the format char 'k' to be replaced with
the kernel name. I like to have it in a callout script.

I've moved the build_kernel_name() back to namedev_name_device() since
we don't expect it growing cause of 'sdaj' :)

17 years ago[PATCH] trivial make fixes [Tue, 23 Dec 2003 03:10:27 +0000 (19:10 -0800)]
[PATCH] trivial make fixes

One patch to let bk ignore the created udev.conf.
The second to depend on the .h files.

17 years ago[PATCH] Just live with a sleep(1) in namedev for now until libsysfs is fixed up. [Tue, 23 Dec 2003 03:07:08 +0000 (19:07 -0800)]
[PATCH] Just live with a sleep(1) in namedev for now until libsysfs is fixed up.

17 years ago[PATCH] try to wait until the proper device file shows up in sysfs. [Sat, 20 Dec 2003 09:05:13 +0000 (01:05 -0800)]
[PATCH] try to wait until the proper device file shows up in sysfs.

this still isn't working correctly for partitions, so don't
think this is the final version...

17 years ago[PATCH] libsysfs 0.4.0 patch [Sat, 20 Dec 2003 02:29:10 +0000 (18:29 -0800)]
[PATCH] libsysfs 0.4.0 patch

Ananth released sysfsutils 0.4.0 last night, I'm sure you saw the email.
Here's a patch with the latest changes from the pre-patch I already
gave you. It includes sysfs_get_device_parent(), which you said you
needed. I've run your test scripts and I've built scsi_id. Please
play around with this and check it out.

There are quite a few changes. Please do not access
structure pointers, like sysfs_device's parent, directly like
dev->parent. Please use the "get" function to retrieve. The functions
load things on demand and refresh views under the covers.

17 years ago[PATCH] don't overwrite old config on install [Sat, 20 Dec 2003 02:29:05 +0000 (18:29 -0800)]
[PATCH] don't overwrite old config on install

Here is a patch for the Makefile to look for a already
installed config and not to overwrite it.

17 years ago[PATCH] udev-remove.c cleanups [Sat, 20 Dec 2003 02:29:01 +0000 (18:29 -0800)]
[PATCH] udev-remove.c cleanups

I've moved the malloc out of the udevdb into udev-remove to free the
struct after use and not to allocate a different struct in the case the
device is not in the data base. I seems a bit easier to read.

17 years ago[PATCH] remove unneeded TODO and FIXME entry [Sat, 20 Dec 2003 02:08:39 +0000 (18:08 -0800)]
[PATCH] remove unneeded TODO and FIXME entry

Thanks to Kay for pointing it out to me.

17 years ago[PATCH] clean up the stand-alone tests to work properly on other people's machines. [Thu, 18 Dec 2003 06:41:04 +0000 (22:41 -0800)]
[PATCH] clean up the stand-alone tests to work properly on other people's machines.

17 years ago[PATCH] bug in udev-remove.c [Thu, 18 Dec 2003 06:33:29 +0000 (22:33 -0800)]
[PATCH] bug in udev-remove.c

Uups, we have a bug in udev-remove.c.

udev segfaults with NULL-pointer, if the device is not in the database:

  ./test.block: line 29:  4844 Segmentation fault      $BIN block
  Dec 17 22:47:42 pim udev[4882]: udev_remove_device: '/block/sdy' not found in database, falling back on default name
  Dec 17 22:47:42 pim udev[4882]: udev_remove_device: name is '(null)'

17 years ago[PATCH] fix scsi_id segfault with udev-009 [Thu, 18 Dec 2003 03:05:25 +0000 (19:05 -0800)]
[PATCH] fix scsi_id segfault with udev-009

Scsi_id hasn't been changed to use the latest libsysfs changes. The
"directory" in the sysfs_class_device is now considered "private" and only
should be accessed using functions. Treating the structures as handles lets
us only load information when it's needed, reducing caching or stale
information and also helping performance.

Here's the problem.

static inline char *sysfs_get_attr(struct sysfs_class_device *dev,
                                    const char *attr)
        return sysfs_get_value_from_attributes(dev->directory->attributes,

Please try this quick fix:

17 years ago[PATCH] add libsysfs docs [Thu, 18 Dec 2003 02:58:28 +0000 (18:58 -0800)]
[PATCH] add libsysfs docs

Here's the latest libsysfs doc, you may want to include it in your
docs directory.

17 years ago[PATCH] Allow build with empty EXTRAS [Thu, 18 Dec 2003 02:32:53 +0000 (18:32 -0800)]
[PATCH] Allow build with empty EXTRAS

Need to let the shell expand $EXTRAS so it can properly detect an empty
list. Without this patch, the build fails whenever $EXTRAS is empty.

17 years ago[PATCH] add tests to catch whitespace and comment config file parsing errors. [Thu, 18 Dec 2003 02:28:05 +0000 (18:28 -0800)]
[PATCH] add tests to catch whitespace and comment config file parsing errors.

17 years ago[PATCH] fix comment and whitespace handling in config files. [Thu, 18 Dec 2003 02:24:05 +0000 (18:24 -0800)]
[PATCH] fix comment and whitespace handling in config files.

This chunk broke parsing of blank lines and comments with blanks before
'#'.  Please revert it with the patch below.


17 years ago[PATCH] mark config files as such in the rpm spec file [Wed, 17 Dec 2003 16:35:00 +0000 (08:35 -0800)]
[PATCH] mark config files as such in the rpm spec file

Got a nasty surprise after upgrading my RPM.  The config files weren't
marked as configs and were subsequently replaced!  DOH!  Fortunately, I
didn't have much in there yet but that certainly isn't something others
will like going forward.  Attached is a simple patch to the spec file so
they aren't replaced in the future.  The config files included in the
RPM should wind up as udev.conf.rpmnew, etc if they are different from
what is installed.

17 years ago[PATCH] trivial cleanup parser changes [Wed, 17 Dec 2003 08:58:01 +0000 (00:58 -0800)]
[PATCH] trivial cleanup parser changes

  o use defines in debug strings
  o replace my 'xxx' debug :)
  o shorten line in man page example to not to exceed 80 chars when printed

17 years ago[PATCH] 009_bk makefile changes. [Wed, 17 Dec 2003 08:57:52 +0000 (00:57 -0800)]
[PATCH] 009_bk makefile changes.

17 years ago[PATCH] v009 release 009 [Wed, 17 Dec 2003 08:30:59 +0000 (00:30 -0800)]
[PATCH] v009 release

17 years ago[PATCH] signal fixes due to klibc update. [Wed, 17 Dec 2003 08:23:28 +0000 (00:23 -0800)]
[PATCH] signal fixes due to klibc update.

17 years ago[PATCH] sync klibc with release 0.95 [Wed, 17 Dec 2003 08:22:55 +0000 (00:22 -0800)]
[PATCH] sync klibc with release 0.95

17 years ago[PATCH] add mol permissions to the debian permissions file. [Wed, 17 Dec 2003 08:04:50 +0000 (00:04 -0800)]
[PATCH] add mol permissions to the debian permissions file.

Info from Mathieu Segaud <>

17 years ago[PATCH] update the FAQ with info about bad modprobe events from the devfs scheme... [Wed, 17 Dec 2003 08:04:23 +0000 (00:04 -0800)]
[PATCH] update the FAQ with info about bad modprobe events from the devfs scheme...

17 years ago[PATCH] dump latest klibc into the udev build tree [Wed, 17 Dec 2003 07:41:59 +0000 (23:41 -0800)]
[PATCH] dump latest klibc into the udev build tree

KLIBC is used as an internal makefile variable, it expands to either
true or false right now. udev should use something else than KLIBC to
allow build against the latest and greatest klibc version.

17 years ago[PATCH] some cleanups due to the need for LABEL rules to use "SYSFS_" now. [Wed, 17 Dec 2003 07:39:44 +0000 (23:39 -0800)]
[PATCH] some cleanups due to the need for LABEL rules to use "SYSFS_" now.

17 years ago[PATCH] don't rely on field order in namedev_parse [Wed, 17 Dec 2003 07:36:19 +0000 (23:36 -0800)]
[PATCH] don't rely on field order in namedev_parse

  o change the parsing to get a key from the rule and sort it
    into our list of known keys instead of expecting a special order
  o the key to match a sysfs file must be prependend by 'SYSFS_' now
    to match with the new parsing.
    (The config must be changed, but it's a bit more descriptive too.)
  o put names of fields in define's, like the name of the methods
  o update all tests and the man page

17 years ago[PATCH] remove udev from runlevels on uninstall [Wed, 17 Dec 2003 07:31:16 +0000 (23:31 -0800)]
[PATCH] remove udev from runlevels on uninstall

I guess we should run 'chkconfig --del udev' on removal to clear out the
now-stale udev entries, if any.

17 years ago[PATCH] install initscript in udev rpm [Wed, 17 Dec 2003 07:30:15 +0000 (23:30 -0800)]
[PATCH] install initscript in udev rpm

Attached patch installs the initscript via 'make install' and adds it to
the RPM package.  The RPM script then runs chkconfig(8) to setup the
initscript to run at the appropriate runlevels.

17 years ago[PATCH] more extras/multipath changes [Tue, 16 Dec 2003 07:25:51 +0000 (23:25 -0800)]
[PATCH] more extras/multipath changes

* Make the HW-specific get_unique_id switch pretty
* Prepare to field-test by whitelisting all known fibre array, try to
fetch WWID from the standard EVPD 0x83 off 8 for everyone ... we will
learn from feedback :)

Could you drop a note with the udev-009 release-notes asking for testing
this WWID fetching thing ?

17 years ago[PATCH] get part of callout return string [Tue, 16 Dec 2003 06:54:38 +0000 (22:54 -0800)]
[PATCH] get part of callout return string

Try this patch if you like, to get special parts of the callout output.
This beast works now:
CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"

The callout returned string is separated by spaces and is
addressed by the "len" value of the 'c' format char.
Since we support symlinks, this my be useful for other uses of callout too.

  introduce 'len number' for format chars
  the first use is 'c'-the callout return to select a part of the output string like:
  CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"
  (note: first part is requested by len=1, len=0 will return the whole string)
  add a test to

17 years ago[PATCH] remove '\n' from end of callout return [Tue, 16 Dec 2003 06:38:18 +0000 (22:38 -0800)]
[PATCH] remove '\n' from end of callout return

  remove possible newline at end of callout output,
  for easier matching with ID=

17 years ago[PATCH] Add restart target to the etc/init.d/udev script [Tue, 16 Dec 2003 06:25:03 +0000 (22:25 -0800)]
[PATCH] Add restart target to the etc/init.d/udev script

Change made by Rolf Eike Beer <>

17 years ago[PATCH] add init.d/udev to "make install" [Tue, 16 Dec 2003 06:22:34 +0000 (22:22 -0800)]
[PATCH] add init.d/udev to "make install"

adds /etc/init.d/udev to "make install"

17 years ago[PATCH] add init.d/udev to the spec file [Tue, 16 Dec 2003 06:22:30 +0000 (22:22 -0800)]
[PATCH] add init.d/udev to the spec file

add /etc/init.d/udev to the SPEC-File and this way to the RPM

17 years ago[PATCH] pre-libsysfs-0.4.0 patch [Tue, 16 Dec 2003 05:53:28 +0000 (21:53 -0800)]
[PATCH] pre-libsysfs-0.4.0 patch

I am sending you a pre-release patch. It's everything that's in our
current CVS tree. It adds the functionality you've been looking for. Please
play with this before checking it into your tree, I'd like to know if
it's ok with you or if you find problems. I have tested this out with
test.all and the perl regression test. Let me know what you think.

Still need to do more testing for our work and add some more functions
related to the changes.

I've gone into namedev.c and udev-add.c to make the necessary changes
in line with the library. I have not gone and edited any of the "extras".


1) Libsysfs object structures work more as handles now, their included
directories or devices are labeled private. If you need attributes
from a sysfs_class_device, call the available function and don't access
the directory directly. Same holds true for a sysfs_class_device
sysfs_device. Do not access the link directly but call the function
sysfs_get_classdev_device() instead. We only populate entries upon
request, makes things faster and uses less memory.

2) Added sysfs_get_classdev_parent() as requested.

3) Changed getpagesize to sysconf.

4) Added sysfs_refresh_attributes function for refreshing views of
attribute lists. We still need to add refresh for links and subdirs. All
udev needs to do is keep calling sysfs_get_classdev_attr() and that will
internally call the refresh routine.

17 years ago[PATCH] tweak the config file generation portion of the Makefile a bit. [Thu, 11 Dec 2003 16:12:29 +0000 (08:12 -0800)]
[PATCH] tweak the config file generation portion of the Makefile a bit.

17 years ago[PATCH] use udevdir in udev.conf [Thu, 11 Dec 2003 16:00:40 +0000 (08:00 -0800)]
[PATCH] use udevdir in udev.conf

udevdir is a define, but udev.conf has a hardcoded path. Maybe this
config file should be generated on the fly, like shown below.

17 years ago[PATCH] change devfs disk name rule from 'disk' to 'disc' [Thu, 11 Dec 2003 06:12:30 +0000 (22:12 -0800)]
[PATCH] change devfs disk name rule from 'disk' to 'disc'

17 years ago[PATCH] man-page mention multiple symlinks [Wed, 10 Dec 2003 23:40:08 +0000 (15:40 -0800)]
[PATCH] man-page mention multiple symlinks

As usual, when the stuff gets in the tree - here is a small
man page update and a TODO line removal.

  mention multiple symlinks
  update example with silly symlink rule :)
  shorten example line to have less than 80 chars
  remove "want symlink support" from TODO

17 years ago[PATCH] add vc support to udev.rules.devfs [Wed, 10 Dec 2003 09:14:24 +0000 (01:14 -0800)]
[PATCH] add vc support to udev.rules.devfs

17 years ago[PATCH] added a devfs udev config file from Marco d'Itri <md@Linux.IT> [Wed, 10 Dec 2003 09:10:37 +0000 (01:10 -0800)]
[PATCH] added a devfs udev config file from Marco d'Itri <md@Linux.IT>

17 years ago[PATCH] set default mode to 0600 to be safer. [Wed, 10 Dec 2003 09:05:30 +0000 (01:05 -0800)]
[PATCH] set default mode to 0600 to be safer.

17 years ago[PATCH] Makefile tweaks for the DBUS build. [Wed, 10 Dec 2003 09:02:03 +0000 (01:02 -0800)]
[PATCH] Makefile tweaks for the DBUS build.

17 years ago[PATCH] and more extras/multipath updates [Wed, 10 Dec 2003 08:52:04 +0000 (00:52 -0800)]
[PATCH] and more extras/multipath updates

* configure the multipath target with round-robin path selector and
conservative default for a start : yes it makes this release the first
really useful one.
* temporarily disable map creation for single path device due to current
restrictive defaults in the kernel target. Sistina should work it out.
* correct the strncmp logic in blacklist function.

Tested on StorageWorks with 2.6.0-test10-udm1 :

xa-s03:~# ./multipath -v
60001fe1000bdad0000903507109004b (1 0 1 1) /dev/sda op:1 /dev/sda
[HSG80           ]
60001fe1000bdad000090371312100bf (1 0 1 2) /dev/sdb op:1 /dev/sdb
[HSG80           ]
60001fe1000bdad000090371312100c2 (1 0 1 3) /dev/sdc op:1 /dev/sdc
[HSG80           ]
60001fe1000bdad00009037131210067 (1 0 2 1) /dev/sdd op:1 /dev/sdd
[HSG80           ]
60001fe1000bdad000090371312100b3 (1 0 2 2) /dev/sde op:1 /dev/sde
[HSG80           ]
60001fe1000bdad00009035071090024 (1 0 2 3) /dev/sdf op:1 /dev/sdf
[HSG80           ]
600508b4000156d700012000000b0000 (1 0 3 1) /dev/sdg op:1 /dev/sdg
600508b4000156c30001200000210000 (1 0 3 2) /dev/sdh op:1 /dev/sdh
600508b4000156d700012000000b0000 (1 0 6 1) /dev/sdi op:1 /dev/sdi
600508b4000156c30001200000210000 (1 0 6 2) /dev/sdj op:1 /dev/sdj

 \_(1 0 1 1) /dev/sda op:1 /dev/sda [HSG80           ]
 \_(1 0 1 2) /dev/sdb op:1 /dev/sdb [HSG80           ]
 \_(1 0 1 3) /dev/sdc op:1 /dev/sdc [HSG80           ]
 \_(1 0 2 1) /dev/sdd op:1 /dev/sdd [HSG80           ]
 \_(1 0 2 2) /dev/sde op:1 /dev/sde [HSG80           ]
 \_(1 0 2 3) /dev/sdf op:1 /dev/sdf [HSG80           ]
 \_(1 0 3 1) /dev/sdg op:1 /dev/sdg [HSV110 (C)COMPAQ]
 \_(1 0 6 1) /dev/sdi op:1 /dev/sdi [HSV110 (C)COMPAQ]
 \_(1 0 3 2) /dev/sdh op:1 /dev/sdh [HSV110 (C)COMPAQ]
 \_(1 0 6 2) /dev/sdj op:1 /dev/sdj [HSV110 (C)COMPAQ]

N|600508b4000156d700012000000b0000 : 0 4194304 multipath 2 2 10
round-robin 2 /dev/sdg 10 2 1 2 /dev/sdi 10 2 1 2
N|600508b4000156c30001200000210000 : 0 20971520 multipath 2 2 10
round-robin 2 /dev/sdh 10 2 1 2 /dev/sdj 10 2 1 2
xa-s03:~# dmsetup ls
600508b4000156c30001200000210000        (254, 1)
600508b4000156d700012000000b0000        (254, 0)
xa-s03:~# ll /dev/mapper/
total 0
brw-------    1 root     root     254,   1 Dec  9 22:57
brw-------    1 root     root     254,   0 Dec  9 22:57
crw-------    1 root     root      10,  63 Jul 25 22:48 control
xa-s03:~# dd if=/dev/mapper/600508b4000156c30001200000210000
of=/dev/null bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes transferred in 5.662530 seconds (92589003 bytes/sec)

gee, that pretty fast :)

17 years ago[PATCH] more extras/multipath updates [Wed, 10 Dec 2003 08:50:25 +0000 (00:50 -0800)]
[PATCH] more extras/multipath updates

* update the Makefiles to autodetect libgcc.a & gcc includes
"ulibc-style". Factorisation of udevdirs & others niceties
* drop a hint about absent /dev/sd? on failed open() for poor Debian
users who don't imagine their favorite distro with only 16 preconfigured
SCSI device nodes :)

17 years ago[PATCH] allow multiple symlinks [Wed, 10 Dec 2003 08:47:00 +0000 (00:47 -0800)]
[PATCH] allow multiple symlinks

Here is a patch to allow the creation of multiple symlinks.
The names must be separated by a space character.

REPLACE, KERNEL="ttyUSB0", NAME="visor", SYMLINK="first-%n second-%n third-%n"

results in:

Dec  9 05:28:51 pim udev[12019]: create_node: mknod(udev-root/visor, 020666, 188, 0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/first-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/first-0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/second-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/second-0)
Dec  9 05:28:51 pim udev[12019]: create_node: symlink 'udev-root/third-0' to node 'visor' requested
Dec  9 05:28:51 pim udev[12019]: create_node: symlink(./visor, udev-root/third-0)

17 years ago[PATCH] update the FAQ due to the latest devfs mess on lkml and also due to symlinks... [Wed, 10 Dec 2003 08:37:02 +0000 (00:37 -0800)]
[PATCH] update the FAQ due to the latest devfs mess on lkml and also due to symlinks now working.

17 years ago[PATCH] cleanup man & remove symlink comment [Wed, 10 Dec 2003 08:30:43 +0000 (00:30 -0800)]
[PATCH] cleanup man & remove symlink comment

  remove "want symlinks" text from udev-add.c
  mention SYMLINK in man page
  man page format cleanup
  man page example for SYMLINK

17 years ago[PATCH] document the different Makefile config options that we have. [Tue, 9 Dec 2003 02:08:52 +0000 (18:08 -0800)]
[PATCH] document the different Makefile config options that we have.

17 years ago[PATCH] change USE_DBUS to DBUS in Makefile, and disable it by default as it's still... [Tue, 9 Dec 2003 02:01:56 +0000 (18:01 -0800)]
[PATCH] change USE_DBUS to DBUS in Makefile, and disable it by default as it's still to hard to build on all systems.

17 years ago[PATCH] fix formatting of udev_dbus.c to use tabs. Also get it to build properly... [Tue, 9 Dec 2003 02:01:28 +0000 (18:01 -0800)]
[PATCH] fix formatting of udev_dbus.c to use tabs. Also get it to build properly now.

17 years ago[PATCH] move all of the DBUS logic into one file and remove all of the #ifdef crud... [Mon, 8 Dec 2003 17:40:40 +0000 (09:40 -0800)]
[PATCH] move all of the DBUS logic into one file and remove all of the #ifdef crud from the main code.

17 years ago[PATCH] D-BUS patch for udev-008 [Mon, 8 Dec 2003 17:19:19 +0000 (09:19 -0800)]
[PATCH] D-BUS patch for udev-008

Attached is a patch against udev-008 to send out a D-BUS message when a
device node is added or removed.

Using D-BUS lingo, udev acquires the org.kernel.udev service and sends
out a NodeCreated or NodeDeleted signal on the
org.kernel.udev.NodeMonitor interface. Each signal carries two
parameters: the node in question and the corresponding sysfs path.

[Note: the D-BUS concepts of service, interface, object can be a bit
confusing at first glance]

An example program listening for these messages looks like this


import dbus
import gtk

def udev_signal_received(dbus_iface, member, service, object_path, message):
    [filename, sysfs_path] = message.get_args_list()
    if member=='NodeCreated':
        print 'Node %s created for %s'%(filename, sysfs_path)
    elif member=='NodeDeleted':
        print 'Node %s deleted for %s'%(filename, sysfs_path)

def main():
    bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
                            'org.kernel.udev.NodeMonitor',  # interface
                            'org.kernel.udev',              # service
                            '/org/kernel/udev/NodeMonitor') # object


if __name__ == '__main__':

and this is the output when hot-plugging some usb-storage.

[david@laptop udev-008]$ ~/
Node /udev/sda created for /block/sda
Node /udev/sda1 created for /block/sda/sda1
Node /udev/sda1 deleted for /block/sda/sda1
Node /udev/sda deleted for /block/sda

The patch requires D-BUS 0.20 or later while the python example program
requires D-BUS from CVS as I only recently applied a patch against the
python bindings.

17 years ago[PATCH] experimental (very simple) SYMLINK creation [Sun, 7 Dec 2003 17:12:07 +0000 (09:12 -0800)]
[PATCH] experimental (very simple) SYMLINK creation

> > here is a experimental symlink creation patch - for discussion,
> > in which direction we should go.
> > It is possible now to define SYMLINK= after the NAME= in udev.rules.
> > The link is relative to the node, but the path is not optimized now
> > if the node and the link are in the same nested directory.
> > Only one link is supported, cause i need to sleep now :)
> >
> > 06-simple-symlink-creation.diff
> >   simple symlink creation
> >   reorganized udev-remove to have access to the symlink field
> >   subdir creation/removal are functions now
> > tests for link creation/removal

Here is a new version with relative link target path optimization
an better tests in

LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="1/2/a/b/node", SYMLINK="1/2/c/d/symlink"

  Dec  7 06:48:34 pim udev[13789]: create_node: symlink 'udev-root/1/2/c/d/symlink' to node '1/2/a/b/node' requested
  Dec  7 06:48:34 pim udev[13789]: create_path: created 'udev-root/1/2/c'
  Dec  7 06:48:34 pim udev[13789]: create_path: created 'udev-root/1/2/c/d'
  Dec  7 06:48:34 pim udev[13789]: create_node: symlink(../../a/b/node, udev-root/1/2/c/d/symlink)

17 years ago[PATCH] better allow builds of extras programs under udev [Sun, 7 Dec 2003 17:04:49 +0000 (09:04 -0800)]
[PATCH] better allow builds of extras programs under udev

Here is an improved version of the patch that enables builds of the extras
progams for the targets all, clean, install, and uninstall, and passes
down the "prefix" for use by install and uninstall.

This patch enables building of the "extras" programs using the same build
environment as udev (i.e. build with udev's versions of klibc and

For example, build scsi_id and udev via:

make EXTRAS=extras/scsi_id

Build scsi_id and udev with klibc via:

make KLIBC=true EXTRAS=extras/scsi_id

17 years ago[PATCH] update udev extras/scsi_id to version 0.2 [Sun, 7 Dec 2003 16:55:40 +0000 (08:55 -0800)]
[PATCH] update udev extras/scsi_id to version 0.2

This patch updates scsi_id under udev from version 0.1 to version 0.2.

17 years ago[PATCH] yet more extras/multipath [Sun, 7 Dec 2003 16:50:19 +0000 (08:50 -0800)]
[PATCH] yet more extras/multipath

* implement a reschedule flag in /var/run. Last thing the prog do before
exit is check if a call to multipath was done (but canceled by
/var/run/ check) during its execution. If so restart the
main loop.
* implement a blacklist of sysfs bdev to not bother with for now (hd,
md, dm, sr, scd, ram, raw). This avoid sending SG_IO to unappropiate

Compiles & survive "while true;do (./multipath -v &);done"

17 years ago[PATCH] more extras/multipath updates [Sun, 7 Dec 2003 16:48:23 +0000 (08:48 -0800)]
[PATCH] more extras/multipath updates

* Adds a /var/run/ handling to avoid simultaneous runs.
* Remove a commented-out "printf"

17 years ago[PATCH] extras/multipath update [Sun, 7 Dec 2003 16:44:59 +0000 (08:44 -0800)]
[PATCH] extras/multipath update

here is the next update which brings this multipath to the state i'm not
ashamed of it being in udev :)

* drop a libdevmapper copy in extras/multipath; maybe discussions w/
Sistina folks will bring a better solution in the future.
* drop a putchar usage in libdevmapper to compile cleanly with klibc
* drop another such usage of my own in main.c
* massage the Makefile to compile libdevmapper against klibc
* use "ld" to produce the binary rather than "gcc -static"
* stop being stupid w/ uneeded major, minor & dev in main.c:dm_mk_node()
* reverse to creating striped target for now because the multipath
target is more hairy than expected initialy
* push the version code to 009 to be in synch w/ udev

builds & run here.
binary size is 43ko, which is fairly gratifying after all the efforts
I've put to compiling it with klibc :)

17 years ago[PATCH] man page beauty [Fri, 5 Dec 2003 03:22:53 +0000 (19:22 -0800)]
[PATCH] man page beauty

I've never seen any project where the documentation is in sync with the
code at this early stage. Nice! So here is the patch to make it extra perfect :)

  remove random indent to be consistent
  style is "shell style"
  mention negation char in character class

17 years ago[PATCH] pattern match for label method [Fri, 5 Dec 2003 03:21:31 +0000 (19:21 -0800)]
[PATCH] pattern match for label method

  switch LABEL search to pattern match
  add a test for pattern match in LABEL
  remove useless rule from udev.rules

17 years ago[PATCH] a bug in linefeed removal [Fri, 5 Dec 2003 03:21:27 +0000 (19:21 -0800)]
[PATCH] a bug in linefeed removal

While I was adding pattern match to the LABEL method i hit a bug.
We modify a string returned from libsysfs, so with every iteration is is
truncated by one char:

Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESXS '
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ESX' with '?IBM-ESXS'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESX'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ES' with 'IBM-ESXS?'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ES'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-E' with 'IBM-ES??'
Dec  4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec  4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec  4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-E'
Dec  4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-' with 'IBM-ESXSS'

I changed the behavior to remove only the line feed.

  remove only the line feed from string not every last char

17 years ago[PATCH] 008_bk mark [Fri, 5 Dec 2003 03:21:10 +0000 (19:21 -0800)]
[PATCH] 008_bk mark

17 years ago[PATCH] v008 release 008 [Fri, 5 Dec 2003 02:01:29 +0000 (18:01 -0800)]
[PATCH] v008 release

17 years ago[PATCH] update ChangeLog for v008 [Thu, 4 Dec 2003 05:57:12 +0000 (21:57 -0800)]
[PATCH] update ChangeLog for v008

17 years ago[PATCH] fix up some duplicated function compiler warnings in libsysfs [Thu, 4 Dec 2003 05:51:37 +0000 (21:51 -0800)]
[PATCH] fix up some duplicated function compiler warnings in libsysfs

17 years ago[PATCH] fix some compiler warnings in the tdb code. [Thu, 4 Dec 2003 05:45:20 +0000 (21:45 -0800)]
[PATCH] fix some compiler warnings in the tdb code.

17 years ago[PATCH] Added Kay's name to the man page. [Thu, 4 Dec 2003 03:27:24 +0000 (19:27 -0800)]
[PATCH] Added Kay's name to the man page.

17 years ago[PATCH] update the wildcard documentation in the man page to show the new styles... [Thu, 4 Dec 2003 03:26:02 +0000 (19:26 -0800)]
[PATCH] update the wildcard documentation in the man page to show the new styles supported.

17 years ago[PATCH] fix permission handling logic [Thu, 4 Dec 2003 02:33:58 +0000 (18:33 -0800)]
[PATCH] fix permission handling logic

Now we can handle wildcards properly within the permission file.

17 years ago[PATCH] enable default_mode ability to actually build [Thu, 4 Dec 2003 02:30:49 +0000 (18:30 -0800)]
[PATCH] enable default_mode ability to actually build

17 years ago[PATCH] add support for the default_mode variable, as it is documented... [Thu, 4 Dec 2003 01:41:02 +0000 (17:41 -0800)]
[PATCH] add support for the default_mode variable, as it is documented...

17 years ago[PATCH] show permissions and groups in the label_test [Thu, 4 Dec 2003 01:37:29 +0000 (17:37 -0800)]
[PATCH] show permissions and groups in the label_test

17 years ago[PATCH] remove some items off of the TODO list, as they are now done. [Wed, 3 Dec 2003 16:18:14 +0000 (08:18 -0800)]
[PATCH] remove some items off of the TODO list, as they are now done.

17 years ago[PATCH] fix up the tests to work without all of the environ variables. [Wed, 3 Dec 2003 16:13:53 +0000 (08:13 -0800)]
[PATCH] fix up the tests to work without all of the environ variables.