1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-05 15:21:37 +03:00
Commit Graph

47 Commits

Author SHA1 Message Date
Kay Sievers
135f3e8d0b fix more warnings 2011-04-15 00:19:45 +02:00
Kay Sievers
cff2f9a3c8 scsi_id: fix compiler warnings 2010-09-07 08:24:12 +02:00
Hannes Reinecke
db11b20e41 scsi_id: export target port group
For ALUA support it's useful to have the target port group number
of a device.

Signed-off-by: Hannes Reinecke <hare@suse.de>
2010-09-07 08:22:05 +02:00
Kay Sievers
8b5651bb00 switch a few left-over from GPLv2 to GPLv2 or later 2010-06-25 11:39:21 +02:00
Kay Sievers
e0f83fbe86 remove a few comments in file headers 2010-06-21 16:56:17 +02:00
Kay Sievers
1c8dc990dc scsi_id: add rand() in retry loop 2010-04-07 09:22:30 +02:00
David Zeuthen
7f4954d040 Export ID_WWN_VENDOR_EXTENSION and ID_WWN_WITH_EXTENSION
Some SCSI devices use the same WWN and have a WWN extension that we
need to take into account when creating the /dev/disk/by-id/wwn
symlinks. Thus, introduce ID_WWN_WITH_EXTENSION. This property will
contain either the WWN (if no extension is present) or the WWN with
the vendor extension appended.

Example:

 # /lib/udev/ata_id/ata_id --export /dev/sda |grep WWN
 ID_WWN=0x5001517387d61905
 ID_WWN_WITH_EXTENSION=0x5001517387d61905

 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdb |grep WWN
 ID_WWN=0x600508b400105df7
 ID_WWN_VENDOR_EXTENSION=0x0000e00000d80000
 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000d80000

 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdc |grep WWN
 ID_WWN=0x600508b400105df7
 ID_WWN_VENDOR_EXTENSION=0x0000e00000db0000
 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000db0000

Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-12-04 11:40:00 -05:00
David Zeuthen
4e9fdfccbd scsi_id: Export WWN and Unit Serial Number
Since the Unit Serial Number and the WWN are useful bits of
information export them as properties in the udev database. These
bits of information are often printed on the physical disk, see

http://people.freedesktop.org/~david/FUJITSU-MAY2036RC-sas-disk-picture.jpg

and displaying them separately in the UI (or in /dev/disk) might help
users identify the physical disk. This patch exports these bits of
information as ID_WWN and ID_SCSI_SERIAL.

Note that ata_id also use the ID_WWN property since commit
66094a4a7f (2009-11-04).

Also print out ID_SCSI=1 so users of the udev database knows the disk
speaks SCSI.

Here's the scsi_id output from one of my SAS disks with these changes:

 ID_SCSI=1
 ID_VENDOR=FUJITSU
 ID_VENDOR_ENC=FUJITSU\x20
 ID_MODEL=MAY2036RC
 ID_MODEL_ENC=MAY2036RC\x20\x20\x20\x20\x20\x20\x20
 ID_REVISION=0103
 ID_TYPE=disk
 ID_SERIAL=3500000e01b83f520
 ID_SERIAL_SHORT=500000e01b83f520
 ID_WWN=0x500000e01b83f520
 ID_SCSI_SERIAL=B3G1P8500RWT

Unfortunately we can't overload ID_SERIAL for two reasons

 1. ID_SERIAL (and ID_SERIAL_SHORT) exported by scsi_id isn't really
    the unit serial number (as defined by SCSI) - it is sometimes the
    WWN (since it is more unique than the Unit Serial Number) and
    complex rules (to make the serial unique) govern what value to
    use.

 2. It would break existing setups if the value of ID_SERIAL changed

Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-23 21:38:21 +01:00
Harald Hoyer
676cea155a scsi_id: prevent buffer overflow in check_fill_0x83_prespc3()
see https://bugzilla.redhat.com/show_bug.cgi?id=516920
2009-09-17 00:06:03 +02:00
Kay Sievers
24355313dc scsi_id: delete copy of bsg.h
It's provided by the kernel since 2.6.23.
2009-09-14 14:33:26 +02:00
Kay Sievers
78715f65c9 fix randonm findings from llvm-clang-analyzer
Thanks to Lennart for the log file!
2009-09-08 22:11:04 +02:00
Daniel Mierswa
959e8b5dec use nanosleep() instead of usleep()
POSIX.1-2001 declares usleep() function obsolete and POSIX.1-2008
removes it.

[Kay Sievers]
  - include time.h
  - use const for timespec
  - scsi_id: drop rand() in retry loop
  - modem-probe: rename msuspend() to msleep()
2009-08-30 23:58:57 +02:00
Alan Jenkins
214a6c791c fix spelling
Fix spelling in docbook comments, code comments, and a local variable
name.  Thanks to "ispell -h" for docbook HTML and "scspell" for source
code.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-08-08 15:42:05 +02:00
Ian Campbell
c3eedf6567 scsi_id: correct error handling in prepend_vendor_model
The callers of prepend_vendor_model both expect < 0 to be returned on
error and the index to be returned otherwise. However
prepend_vendor_model actually returns 1 on error. Fix this by correctly
returning -1.

Older kernels (before e5b3cd42: "SCSI: sanitize INQUIRY strings")
truncated the model field in sysfs (or propagated bad results from the
target) to less than the expected/required 16 characters which meant
that the SCSI id was mangled into:
        # /sbin/scsi_id -g -s /block/sdg
        S146cee20VIRTUAL-DISK
when it should have been:
        # /sbin/scsi_id -g -s /block/sdg
        SIET     VIRTUAL-DISK   146cee20

Notice how the serial number has been pasted over the vendor+model at
index 1 instead of being added at the end.

In the former case:
        # cat /sys/devices/platform/host5/session1/target5:0:0/5:0:0:1/model | od -t c -t x1
        0000000   V   I   R   T   U   A   L   -   D   I   S   K  \n
                56 49 52 54 55 41 4c 2d 44 49 53 4b 0a
But it should have been:
        # cat /sys/devices/platform/host5/session1/target5:0:0/5:0:0:1/model | od -t c -t x1
        0000000   V   I   R   T   U   A   L   -   D   I   S   K
                56 49 52 54 55 41 4c 2d 44 49 53 4b 20 20 20 20
        0000020  \n
                0a

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
2009-07-06 16:21:08 +02:00
Kay Sievers
a8916c3400 scsi_id: --reformat_serial - use udev_util_replace_whitespace() 2009-06-28 02:27:23 +02:00
Kay Sievers
9060b066d9 move syslog wrapper to libudev 2009-06-09 22:47:48 +02:00
Kay Sievers
caf4c97a2c scsi_id: do not fail if no serial is found like for optical drives 2008-12-02 19:23:38 +01:00
Alan Jenkins
a4354f9385 scsi_id: compiler warning on 32-bit
The sg_io_v4 interface passes pointers as u64s.  It turns out GCC
disapproves of us casting a u64 straight to a 32 bit pointer.

cc1: warnings being treated as errors
scsi_serial.c: In function ‘sg_err_category4’:
scsi_serial.c:159: warning: cast to pointer from integer of different size
scsi_serial.c: In function ‘scsi_dump_v4’:
scsi_serial.c:303: warning: cast to pointer from integer of different size
2008-09-19 22:14:46 -07:00
Kay Sievers
7d563a17f3 use libudev code, unify logging, pass udev context around everywhere 2008-09-06 15:45:31 +02:00
Kay Sievers
01618658fd use autotools 2008-07-30 01:45:23 +02:00
Kay Sievers
05364975af scsi_id: the fallback fix broke error handling 2008-07-10 22:22:10 +02:00
Thomas Koeller
629e57e0d4 scsi_id: include sys/stat.h
I could not build scsi_id because of a missing #include
for sys/stat.h, so I had to add that.

Signed-off-by: Thomas Koeller <thomas@koeller.dyndns.org>
2008-07-10 00:08:32 +02:00
Kay Sievers
24dabba541 scsi_id: fix fallback to sg v3 for sg nodes 2008-07-07 11:18:49 +02:00
Harald Hoyer
1ecb086460 scsi_id: retry open() on -EBUSY 2008-06-11 23:26:18 +02:00
Kay Sievers
025570aa3e scsi_id: add --sg-version= option 2008-05-14 15:02:17 +02:00
Hannes Reinecke
78d9ecfd4f scsi_id: add SGv4 support
Fall back to SGv3, if SGv3 returns a failure/is not available.
2008-05-14 13:55:49 +02:00
Hannes Reinecke
753417db2b scsi_id: remove all sysfs dependencies 2008-05-14 13:42:41 +02:00
Kay Sievers
c70560feef logging: add trailing newline to all strings 2008-04-20 21:07:06 +02:00
Hannes Reinecke
87cf9f5aac cciss device support 2007-05-25 14:48:08 +02:00
Marco d'Itri
5284454d5f scsi_id: remove trailing garbage from ID_SERIAL_SHORT 2006-11-27 17:13:19 +01:00
Kay Sievers
11678eff6a scsi_id: export ID_SERIAL_SHORT without vendor/product 2006-10-10 16:56:09 +02:00
Kay Sievers
95776dc6ec consistent key naming to match only the event device or include all parent devices
This scheme is more consistent and makes it obvious if a match happens
against the event device only, or the full chain of parent devices.

The old key names are now:
  BUS -> SUBSYSTEMS
  ID -> KERNELS
  SYSFS -> ATTRS
  DRIVER -> DRIVERS

Match keys for the event device:
  KERNEL
  SUBSYSTEM
  ATTR
  DRIVER (in a future release, for now the same as DRIVERS)

Match keys for all devices along the parent device chain:
  KERNELS
  SUBSYSTEMS
  ATTRS
  DRIVERS

ID, BUS, SYSFS are no longer mentioned in the man page but still work.
DRIVER must be converted to DRIVERS to match the new scheme. For now,
an error is logged, if DRIVER is used. In a future release, the DRIVER
key behaviour will change.
2006-08-19 16:06:25 +02:00
Kay Sievers
3d94fb8742 scsi_id: remove dead files
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2006-01-28 16:42:49 +01:00
Kay Sievers
1aa1e24848 replace libsysfs
We never used any of the libsysfs convenience features. Here we replace
it completely with 300 lines of code, which are much simpler and a bit
faster cause udev(d) does not open any syfs file for a simple event which
does not need any parent device information.

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2006-01-09 21:18:00 +01:00
Kurt Garloff
cbba4a5446 support pre-SPC3 page 83 format 2005-12-15 13:01:01 +01:00
Edward Goggin
50be140174 scsi_id: derive a UID for a SCSI-2 not compliant with the page 83
This patch is to enable the use of scsi_id to derive a UID for a SCSI-2
device which is not compliant with the page 83 inquiry reply format for
either SPC-2 or SPC-3.  In this case, the page 83 reply does not
contain a list of  Identification descriptors but a single binary encoded
hexa-decimal Vendor Specified Identifier.

The update is being driven by the need for scsi_id to support older
model EMC Symmetrix hardware, that is, models 4, 5, and 6.
2005-09-14 20:23:48 +02:00
Kay Sievers
70721db6d7 fix GGC signed pointer warnings and switch volume_id to stdint
Solaris uses volume_id now and they fiddled around with configure scripts
to map the linux kernel int types. Adding the types locally to volume_id
breaks the klibc build, so just switch to these ugly types and forget it. :)

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-08-01 01:33:36 +02:00
Hannes Reinecke
b4a2906bf1 fix usb_id and let scsi_id ignore "illegal request" 2005-07-08 03:29:19 +02:00
patmans@us.ibm.com
4e05e4238b [PATCH] update scsi_id to work with libsysfs changes
Update scsi_id to work with the libsysfs changes in udev: use
sysfs_get_classdev_attr and sysfs_get_device_attr in place of
sysfs_read_attribute_value.
2005-04-26 23:39:48 -07:00
kay.sievers@vrfy.org
1134a81b98 [PATCH] fix -Wsign-compare warnings 2005-04-26 23:24:19 -07:00
patmans@us.ibm.com
01f950e2eb [PATCH] update udev to include scsi_id 0.6
Here's a patch updating udev's copy of scsi_id to version 0.6.
2005-04-26 21:37:02 -07:00
patmans@us.ibm.com
062db23d5e [PATCH] update udev scsi_id to scsi_id 0.5
This patch syncs the scsi_id in the udev tree to version 0.5.
2005-04-26 21:36:21 -07:00
patmans@us.ibm.com
b484e43622 [PATCH] update udev scsi_id to scsi_id 0.4
This patch syncs the scsi_id in the udev tree to version 0.4.
2005-04-26 21:34:28 -07:00
patmans@us.ibm.com
0bad3406c1 [PATCH] udev use new libsysfs header file location
Use the new location of libsysfs header files.
2005-04-26 21:32:29 -07:00
patmans@us.ibm.com
e996d97835 [PATCH] update udev scsi_id to scsi_id 0.3 2005-04-26 21:13:17 -07:00
patmans@us.ibm.com
1bed1db499 [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.
2005-04-26 21:13:06 -07:00
greg@kroah.com
c521693b54 [PATCH] add scsi_id "extra" program from Patrick Mansfield <patmans@us.ibm.com> 2005-04-26 21:06:24 -07:00