[PATCH] ieee1394: sbp2: change default /dev/disk/by-id naming policy

From: Stefan Richter
Date: Thu May 21 2009 - 09:23:51 EST


Change the default value of the module parameter sbp2.long_ieee1394_id
from N to Y. This aligns user-visible behaviour of sbp2 to that of the
newer firewire-sbp2 driver, notably how /dev/disk/by-id symlinks look.

Background:

With long_ieee1394_id=Y, the sbp2 driver will handle the sysfs attribute
/sys/bus/scsi/devices/.../ieee1394_id just like the newer firewire-sbp2
driver does: It will create a slightly longer, fixed length ID with
values which entirely depend on the SBP-2 target only. The sysfs
attribute is used by udev to maintain /dev/disk/by-id symlinks.

Example symlinks with long_ieee1394_id=Y (new default):
/dev/disk/by-id/ieee1394-0001041010004beb:00042c:0000
/dev/disk/by-id/ieee1394-0001041010004beb:00042c:0000-part1

With long_ieee1394_id=N --- which was the default until now --- the
sysfs attribute will have the same form as in older kernels which had
the drawback that one component in it was not entirely target-dependent
but also specific to the implementation of ieee1394 core's nodemgr.
Hence only the long_ieee1394_id=Y format is available in the newer
alternative firewire-sbp2 driver.

Example symlinks with long_ieee1394_id=N (now a legacy option):
/dev/disk/by-id/ieee1394-0001041010004beb:0:0
/dev/disk/by-id/ieee1394-0001041010004beb:0:0-part1

The second part of the ID (in the example: 0 with N and 00042c with Y)
may not be persistent with N in case of complex SBP-2 targets which run
other protocols besides SBP-2. Therefore --- but even more so for best
support of parallel installation of sbp2 and firewire-sbp2 as a gradual
migration path to the new firewire driver stack --- switch the default
to Y.

Necessary changes in userland:

People who use /dev/disk/by-id/ieee1394* entries in their fstab have to
replace them by the new names. Alternatively, if they do not plan to
migrate to firewire-sbp2 anytime soon, they can add

options sbp2 long_ieee1394_id=N

to /etc/modprobe.conf or /etc/modprobe.d/whatever and keep using the old
symlink names.

Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
---
drivers/ieee1394/sbp2.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Index: linux/drivers/ieee1394/sbp2.c
===================================================================
--- linux.orig/drivers/ieee1394/sbp2.c
+++ linux/drivers/ieee1394/sbp2.c
@@ -211,26 +211,27 @@ MODULE_PARM_DESC(workarounds, "Work arou

/*
* This influences the format of the sysfs attribute
* /sys/bus/scsi/devices/.../ieee1394_id.
*
- * The default format is like in older kernels: %016Lx:%d:%d
+ * The legacy format is like in older kernel versions: %016Lx:%d:%d
* It contains the target's EUI-64, a number given to the logical unit by
* the ieee1394 driver's nodemgr (starting at 0), and the LUN.
*
* The long format is: %016Lx:%06x:%04x
* It contains the target's EUI-64, the unit directory's directory_ID as per
* IEEE 1212 clause 7.7.19, and the LUN. This format comes closest to the
* format of SBP(-3) target port and logical unit identifier as per SAM (SCSI
* Architecture Model) rev.2 to 4 annex A. Therefore and because it is
* independent of the implementation of the ieee1394 nodemgr, the longer format
- * is recommended for future use.
+ * is recommended and the default since Linux 2.6.31. It is also the only
+ * format implemented in the newer firewire-sbp2 driver.
*/
-static int sbp2_long_sysfs_ieee1394_id;
+static int sbp2_long_sysfs_ieee1394_id = 1;
module_param_named(long_ieee1394_id, sbp2_long_sysfs_ieee1394_id, bool, 0644);
-MODULE_PARM_DESC(long_ieee1394_id, "8+3+2 bytes format of ieee1394_id in sysfs "
- "(default = backwards-compatible = N, SAM-conforming = Y)");
+MODULE_PARM_DESC(long_ieee1394_id, "format of ieee1394_id in sysfs (default = "
+ "SAM-conforming 8+3+2 bytes = Y, legacy 8+?+? = N)");


#define SBP2_INFO(fmt, args...) HPSB_INFO("sbp2: "fmt, ## args)
#define SBP2_ERR(fmt, args...) HPSB_ERR("sbp2: "fmt, ## args)


--
Stefan Richter
-=====-==--= -=-= =-=-=
http://arcgraph.de/sr/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/