platform/upstream/multipath-tools.git
18 years ago[multipath] add '-h' option
Christophe Varoqui [Thu, 19 Oct 2006 20:24:58 +0000 (22:24 +0200)]
[multipath] add '-h' option

Calling 'multipath -h' always added the line 'Unknown switch: (null)' in
front of the usage text since '-h' was not defined.
This patch just adds the '-h' option.

Volker Sameske, IBM

18 years ago[prio] ALUA prioritizer broken for paths with high minor
Christophe Varoqui [Tue, 26 Sep 2006 21:21:24 +0000 (23:21 +0200)]
[prio] ALUA prioritizer broken for paths with high minor

Here's a patch which I think will allow mpath_prio_alua to
work better with device files with minor numbers >= 256.

Edward Goggin, EMC

18 years ago[libmultipath] remove some more absolute path in hwtable
Christophe Varoqui [Mon, 4 Sep 2006 19:33:37 +0000 (21:33 +0200)]
[libmultipath] remove some more absolute path in hwtable

Hannes sent a patch to remove one for IBM 3526.
Go a bit further, removing all absolute paths.

18 years ago[multipath] disabling lock_fs call on DM_DEVICE_RESUME libdevmapper ioctl
Christophe Varoqui [Sun, 3 Sep 2006 22:33:08 +0000 (00:33 +0200)]
[multipath] disabling lock_fs call on DM_DEVICE_RESUME libdevmapper ioctl

This patch to dm_simplecmd of multipath-tools/libmultipath/devmapper.c will
disable the use of lock_fs during I/O suspension while changing
dm-multipath
device mapper maps via the DM_DEVICE_RESUME ioctl of libdevmapper.

Disabling lock_fs will result in not flushing I/O to the dm-multipath block
device before changing the maps for the mapped device.  Flushing I/O at
this
time appears not only unnecessary for dm-multipath devices but causes some
troublesome delays due to SCSI HBA driver target-side timeouts when these
maps are changed as a result of paths coming and going while upgrading
software (a non-disruptive ucode upgrade) on a storage system.

As is the case for any change which is dependent on similar changes in
libdevmapper and the kernel, this patch will introduce a dependency on
libdevmapper and kernel.  Not sure which versions first had this support
but
at least libdevmapper 1.02.02 and linux kernel version 2.6.18-rc2 have the
required support.

Edward Goggin, EMC

18 years ago[multipath] Fixup return code for 'multipath -l'
Christophe Varoqui [Sun, 3 Sep 2006 22:15:44 +0000 (00:15 +0200)]
[multipath] Fixup return code for 'multipath -l'

'multipath -l' should really set the return code to '0' if no error
occurred.

Hannes Reinecke, Suse

18 years ago[multipath] remove obsolete '-D' option
Christophe Varoqui [Sun, 3 Sep 2006 22:14:54 +0000 (00:14 +0200)]
[multipath] remove obsolete '-D' option

our documentation folks complained that the manpage documents an
obsolete / unused '-D' option for multipath.

This patch removes this description from the manpage.

Hannes Reinecke, Suse

18 years ago[libmultipath] Fixup hwtable regexp
Christophe Varoqui [Sun, 3 Sep 2006 22:13:54 +0000 (00:13 +0200)]
[libmultipath] Fixup hwtable regexp

appearently no-one noticed that we've switched to regular expressions
instead of shell-style fnmatch for the hwtable.
Quite surprisingly, really, that no-one complained; the change has been
done in October 2005.

Anyway, this patch cleans it up. And also splits off the IBM DS6000 and
IBM SVC, as they are separate machines.

Hannes Reinecke, Suse

18 years ago[priority] disable debug output for pp_tpc
Christophe Varoqui [Sun, 3 Sep 2006 22:12:53 +0000 (00:12 +0200)]
[priority] disable debug output for pp_tpc

this patch removes the debug output for pp_tpc and also decreases the
priority ratings so that the passive path will have a priority of 0.

Hannes Reinecke, Suse

18 years ago[libmultipath] add support for IBM 3526
Christophe Varoqui [Sun, 3 Sep 2006 22:11:39 +0000 (00:11 +0200)]
[libmultipath] add support for IBM 3526

we've found another IBM storage server in our lab; this patch adds the
necessary hwtable entry for it.

However, this is an RDAC machine, so it'll work only in some cases. One
day we really need an RDAC hw-handler.

Hannes Reinecke, Suse

18 years ago[checkers] EMC checker to report LUNZ as failing (2)
Christophe Varoqui [Sat, 12 Aug 2006 14:30:31 +0000 (16:30 +0200)]
[checkers] EMC checker to report LUNZ as failing (2)

Fix braino while applying patch.

18 years ago[checkers] EMC checker to report LUNZ as failing
Christophe Varoqui [Fri, 11 Aug 2006 06:45:29 +0000 (08:45 +0200)]
[checkers] EMC checker to report LUNZ as failing

This patch simply reports a PATH_DOWN status for paths to an EMC CLARiiON
LUNZ (or an unbound) block device since these paths cannot possibly be used
to issue I/O to such a device.  In fact, allowing block I/O to a LUNZ
dm-multipath device will cause the process to hang until the no_path_retry
timeout is incurred.  This is not desirable.

Ed Goggin, EMC

18 years ago[libmultipath] make sure to terminate strftime buff properly
Christophe Varoqui [Wed, 19 Jul 2006 12:49:34 +0000 (14:49 +0200)]
[libmultipath] make sure to terminate strftime buff properly

Bernhard Fischer

18 years ago[libmultipath] allow for non-default DESTDIR in hwtable
Christophe Varoqui [Wed, 19 Jul 2006 12:44:20 +0000 (14:44 +0200)]
[libmultipath] allow for non-default DESTDIR in hwtable

Bernhard Fischer

18 years ago[libmultipath] make sure that the callout program picks up the PATH from
Christophe Varoqui [Wed, 19 Jul 2006 12:43:32 +0000 (14:43 +0200)]
[libmultipath] make sure that the callout program picks up the PATH from
the invoking shell

Bernhard Fischer

18 years ago[multipathd] sweets
Christophe Varoqui [Wed, 19 Jul 2006 12:40:46 +0000 (14:40 +0200)]
[multipathd] sweets

- vector_foreach_slot takes an unsigned i
- don't use old-style initializer for setscheduler's sched_param

Bernhard Fischer

18 years ago[typo] s/controler/controller/g
Christophe Varoqui [Wed, 19 Jul 2006 12:37:44 +0000 (14:37 +0200)]
[typo] s/controler/controller/g

Bernhard Fischer

18 years ago[libmultipath] move newline to dlog format parameter
Christophe Varoqui [Wed, 19 Jul 2006 12:36:06 +0000 (14:36 +0200)]
[libmultipath] move newline to dlog format parameter

Bernhard Fischer

18 years ago[man] update date of manpages
Christophe Varoqui [Wed, 19 Jul 2006 12:33:40 +0000 (14:33 +0200)]
[man] update date of manpages

Bernhard Fischer

18 years ago[libmultipath] rename the Hitachi prioritizer in defaults table
Christophe Varoqui [Wed, 5 Jul 2006 13:20:19 +0000 (15:20 +0200)]
[libmultipath] rename the Hitachi prioritizer in defaults table

Matthias Rudolph, HDS

18 years ago[libmultipath] fix 'multipath -d' behaviour
Christophe Varoqui [Thu, 22 Jun 2006 14:27:19 +0000 (16:27 +0200)]
[libmultipath] fix 'multipath -d' behaviour

Volker Sameske noted 'multipath -d' was displaying the same info multiple
times, and listed paths which should be listed.

Fix that.

18 years ago[multipathd] get the layout right with "sho topo" CLI commands
Christophe Varoqui [Thu, 22 Jun 2006 08:59:16 +0000 (10:59 +0200)]
[multipathd] get the layout right with "sho topo" CLI commands

18 years ago[libmultipath] snprint_size tweaks
Christophe Varoqui [Mon, 19 Jun 2006 08:57:06 +0000 (10:57 +0200)]
[libmultipath] snprint_size tweaks

Prefer 1.8T to 1824G, like "GNU df".
Make units knowledge easily expandable.
Push the logic to 'P', for petabyte, in this patch.

18 years ago[kpartx][libmultipath] make multipath and kpartx prefix the uuid
Christophe Varoqui [Mon, 19 Jun 2006 07:49:09 +0000 (09:49 +0200)]
[kpartx][libmultipath] make multipath and kpartx prefix the uuid

In order for other programs to figure out who owns the dm-devices that
are created by multipath and kpartx, this patch adds a prefix to the uuid
for all multipath and kpartx created devices.  When multipath gets the
uuid,
the prefix is stripped back off. However other programs can use the device
mapper library or dmsetup to easily check which devices were created by
multipath or kpartx.

the multipath prefix is mpath-
the kpartx prefix is part%d- where %d is the partition number.

Ben Marzinski, Redhat

18 years agoFinish up the work on SG_IO timeout
Christophe Varoqui [Fri, 16 Jun 2006 10:36:55 +0000 (12:36 +0200)]
Finish up the work on SG_IO timeout

all over the place.

18 years ago[libcheckers] workaround for rather profound path checking issue
Christophe Varoqui [Fri, 16 Jun 2006 10:23:07 +0000 (12:23 +0200)]
[libcheckers] workaround for rather profound path checking issue

Overloaded storage response time can be very long.
SG_IO timouts after DEF_TIMEOUT milliseconds, and checkers interprets this
as a path failure. multipathd then proactively evicts the path from the DM
multipath table in this case.

This generaly snow balls and ends up in full eviction and IO errors for end
users. Bad. This may also cause SCSI bus resets, causing disruption for all
local and external storage hardware users.

Provision a long timeout. Longer than any real-world application would cope
with.

If someone can suggest a real fix, like an evidence the ioctl timed out,
voice up. The ioctl being blocking, I'd rather lower the timeout and retry
than apply this workaround.

18 years ago[libmultipath] print dm-* sysfs device name in "show topo"
Christophe Varoqui [Tue, 13 Jun 2006 08:55:02 +0000 (10:55 +0200)]
[libmultipath] print dm-* sysfs device name in "show topo"

Useful info for admins.

Also fix a small bug in print_multipath() not reseting a buffer upon
iteration.

18 years ago[multipath] getopt cleanup
Christophe Varoqui [Sat, 10 Jun 2006 06:37:52 +0000 (08:37 +0200)]
[multipath] getopt cleanup

'q' and 'i' are never used, so don't accept them as valid options

Benjamin Marzinski, Redhat

18 years ago[libmultipath] fix hwtable brainos
Christophe Varoqui [Fri, 2 Jun 2006 20:02:17 +0000 (22:02 +0200)]
[libmultipath] fix hwtable brainos

Matthias Rudolph remembered me the most simple regex rules. Shame.

18 years ago[libmultipath] fix segv in load_config()
Christophe Varoqui [Fri, 2 Jun 2006 19:56:16 +0000 (21:56 +0200)]
[libmultipath] fix segv in load_config()

segv when a vendor or product string was not set in the
configuration file.

Note that now

device {
vendor DCG
}

means :

device {
vendor DCG
product *
}

18 years ago[libmultipath] print the multipath strings in "show topo"
Christophe Varoqui [Thu, 1 Jun 2006 10:00:21 +0000 (12:00 +0200)]
[libmultipath] print the multipath strings in "show topo"

Helps usability in complex SAN setups.

18 years ago[libmultipath] '\0' terminate strings from sysfs after the last char
Christophe Varoqui [Thu, 1 Jun 2006 07:37:07 +0000 (09:37 +0200)]
[libmultipath] '\0' terminate strings from sysfs after the last char

Makes for fancier vendor/product/rev strings for example.
And generally makes sense.

18 years ago[libmultipath] hwtable maintenance
Christophe Varoqui [Thu, 1 Jun 2006 07:34:16 +0000 (09:34 +0200)]
[libmultipath] hwtable maintenance

Mostly tweaks to the Hitachi products, from Matthias Rudolph.

18 years ago[libmultipath] fix select_alias weirdness
Christophe Varoqui [Thu, 1 Jun 2006 07:21:29 +0000 (09:21 +0200)]
[libmultipath] fix select_alias weirdness

In select_alias, the code that tries to pull the alias from dm_get_name()
sets mp->alias. So even if it fails,  mp->alias will never get set to
mp->wwid.

Benjamin Marzinski, Redhat

18 years ago[libmultipath] multipath size output in line with "df -h"
Christophe Varoqui [Wed, 31 May 2006 10:14:15 +0000 (12:14 +0200)]
[libmultipath] multipath size output in line with "df -h"

[size=XX GB] replaced with [size=XXG] for example.

18 years ago[libmultipath] pick up existing alias (if any) from current dm config
Christophe Varoqui [Tue, 16 May 2006 21:28:12 +0000 (23:28 +0200)]
[libmultipath] pick up existing alias (if any) from current dm config

This small patch should allow multipath(8) and multipathd(8) to acquire its
internal alias name from the device-mapper's device-name for the device if a
multipath specific alias (user friendly one or not) has __not__ been set.
Otherwise, assuming that a multipath device has been renamed beforehand by
someone invoking "dm_setup rename", simply invoking "multipath" changes the
device-mapper's device-name for the device back to the multipath assigned
UID name.

Edward Goggin, EMC

18 years ago[build] provision for custom versioning
Christophe Varoqui [Tue, 9 May 2006 21:43:27 +0000 (23:43 +0200)]
[build] provision for custom versioning

apply custom build/rpm versioning for multipath-tools

Brian Wong, Pillardata

18 years ago[libmultipath] add Apple Xserve defaults
Christophe Varoqui [Tue, 9 May 2006 21:37:19 +0000 (23:37 +0200)]
[libmultipath] add Apple Xserve defaults

I tested Apple's Xserve RAID with the multipath tools.

Here is the entry I had to make in the config file, if
one wants to add it to the dafault table:

Shyam Sundar.

18 years ago[priority] pp_alua correctness fix
Christophe Varoqui [Thu, 4 May 2006 21:34:40 +0000 (23:34 +0200)]
[priority] pp_alua correctness fix

Tom Kalus noted path_priority/pp_aula/spc.h misrepresented to spec
regarding the product string lentgh. Credits for the fix too.

Fix acked by Stefan Bader.

18 years ago[priority] add new HDS Modular prioritizer
Christophe Varoqui [Mon, 24 Apr 2006 15:29:02 +0000 (17:29 +0200)]
[priority] add new HDS Modular prioritizer

Written by Matthias Rudolph, HDS.

18 years ago[libmultipath] push WWID_SIZE to 128
Christophe Varoqui [Thu, 20 Apr 2006 08:26:18 +0000 (10:26 +0200)]
[libmultipath] push WWID_SIZE to 128

64 was too small for "scsi_id -p 0x80" in most cases.

As a consequence, the tools refuse to get the uid at all and the path was
discarded ... which is still the good behaviour.

The problem tracking was done by Tarik Sedlarevic, Visionbytes.

18 years ago[libmultipath] fix segfault when no config file
Christophe Varoqui [Thu, 13 Apr 2006 21:03:08 +0000 (23:03 +0200)]
[libmultipath] fix segfault when no config file

Brian Wong noticed the segfault and tracked it down to free_keywords()
trying to walk a NULL keywords vector.  Credits.

18 years ago[libmultipath] get_serial overflow fix
Christophe Varoqui [Wed, 12 Apr 2006 19:49:39 +0000 (21:49 +0200)]
[libmultipath] get_serial overflow fix

Arsene Gschwind tracked down this bug. Credits.

The patch also normalize the return codes, even if they are not
used yet.

18 years ago[libmultipath] remove harmless duplicated code
Christophe Varoqui [Fri, 7 Apr 2006 22:14:49 +0000 (00:14 +0200)]
[libmultipath] remove harmless duplicated code

18 years ago[libmultipath] update netapp and IBM nseries (netapp) hwtable.c
Christophe Varoqui [Mon, 3 Apr 2006 22:09:23 +0000 (00:09 +0200)]
[libmultipath] update netapp and IBM nseries (netapp) hwtable.c

David Wysochanski, Netapp

18 years ago[multipath] cosmetical fix
Christophe Varoqui [Fri, 31 Mar 2006 21:51:43 +0000 (23:51 +0200)]
[multipath] cosmetical fix

I'd like to ask some cosmetical fix in libmultipath.
In Redhat /etc/rc.sysinit calls /sbin/multipath -v 0 after modprobe
dm-multipath to catch the disks already attached.

Now it prints a small garbage on screen for every map, I think.
Actually every multipath -F; multipath/multipath -v 0 sequence does
that.

The reason is neither print_multipath_topology nor
snprint_multipath_topology initialize buff if verbosity is 0.

Maxim Kozover

18 years ago[multipathd] some more output coherency
Christophe Varoqui [Fri, 31 Mar 2006 21:17:10 +0000 (23:17 +0200)]
[multipathd] some more output coherency

18 years ago[libmultipath] plug the keywords vector leak upon "reconfigure"
Christophe Varoqui [Fri, 31 Mar 2006 21:08:08 +0000 (23:08 +0200)]
[libmultipath] plug the keywords vector leak upon "reconfigure"

18 years ago[multipathd] plug a small leak on "reconfigure" CLI command
Christophe Varoqui [Fri, 31 Mar 2006 21:00:56 +0000 (23:00 +0200)]
[multipathd] plug a small leak on "reconfigure" CLI command

18 years ago[multipathd] don't set the SIGKILL signal
Christophe Varoqui [Mon, 27 Mar 2006 15:58:15 +0000 (17:58 +0200)]
[multipathd] don't set the SIGKILL signal

Valgrind told me it was useless.

18 years ago[libmultipath] compilation fix
Christophe Varoqui [Thu, 16 Mar 2006 08:17:49 +0000 (09:17 +0100)]
[libmultipath] compilation fix

waiter.h should be empty when libmultipath is built for multipath(8)
so preprocess its content.

18 years ago[multipathd] ignore SIGPIPE
Christophe Varoqui [Thu, 16 Mar 2006 08:07:02 +0000 (09:07 +0100)]
[multipathd] ignore SIGPIPE

Maxim Kozover reported daemon segfault when breaking the recieving side
of the unix socket. Credits.

18 years ago[libmultipath] NetApp maintainer change
Christophe Varoqui [Wed, 15 Mar 2006 10:46:32 +0000 (11:46 +0100)]
[libmultipath] NetApp maintainer change

18 years ago[libmultipath] a bit of code reorganisation
Christophe Varoqui [Wed, 15 Mar 2006 10:15:06 +0000 (11:15 +0100)]
[libmultipath] a bit of code reorganisation

o locking primitives moved to libmultipath/lock.[ch]
o waiter threads control primitives moved to libmultipath/waiter.[ch]
o update_multipath() and queue_mode_{add,del}_path() moved to
libmultipath/structs_vec.c

18 years ago[libmultipath] move the tools' version string to the lib
Christophe Varoqui [Tue, 14 Mar 2006 13:06:30 +0000 (14:06 +0100)]
[libmultipath] move the tools' version string to the lib

o Remove multipath/main.h
o Print the version string in the CLI syntax reference

18 years ago[build] minor compilation issues
Christophe Varoqui [Mon, 13 Mar 2006 13:55:16 +0000 (14:55 +0100)]
[build] minor compilation issues

SuSE checker found some minor issues:

- refwwid in libmultipath/configure.c:get_refwwid() might be used
uninitialized. As dev_type is a simple 'int' there is nothing which
prevents the unsuspecting user to call it with an unhandled value.
We shoud rather use an enum and set refwwid to NULL to be on the safe
side.

- attr in libmultipath/discovery.c:devt2devname() might be used
uninitialized. Quite unlikely, but might happen in principle.
So better have it initialized.

- r in multipath/main.c:main() might be used uninitialized.
True. So have it initialized.

18 years ago[build] libmultipath Makefile fix
Christophe Varoqui [Mon, 13 Mar 2006 13:48:09 +0000 (14:48 +0100)]
[build] libmultipath Makefile fix

libmultipath/Makefile resets CFLAGS, so we can't pass anything from the
top-level makefile.

Hannes Reinecke, SuSE

18 years ago[libmultipath] IBM defaults tweaks
Christophe Varoqui [Mon, 13 Mar 2006 13:46:53 +0000 (14:46 +0100)]
[libmultipath] IBM defaults tweaks

There is a new hardware ID for the IBM F20; and I've also switched to
'dasd_id' from udev instead of dasdview from s390-tools.

Hannes Reinecke, SuSE

18 years ago[multipath] release preparation 0.4.7
Christophe Varoqui [Mon, 13 Mar 2006 11:07:24 +0000 (12:07 +0100)]
[multipath] release preparation

18 years ago[libmultipath] add pathcountgr() helper function
Christophe Varoqui [Sun, 12 Mar 2006 14:16:40 +0000 (15:16 +0100)]
[libmultipath] add pathcountgr() helper function

Teach pathcount() to use it.

Edward Goggin, EMC

18 years ago[multipathd] add more checkers message printing upon path failures
Christophe Varoqui [Sun, 12 Mar 2006 13:29:27 +0000 (14:29 +0100)]
[multipathd] add more checkers message printing upon path failures

Edward Goggin, EMC

18 years ago[checkers] emc_clariion checker init() fix
Christophe Varoqui [Sun, 12 Mar 2006 12:51:36 +0000 (13:51 +0100)]
[checkers] emc_clariion checker init() fix

Edward Goggin, EMC

18 years ago[checkers] checker_put() to exec the free fn only if one is registered
Christophe Varoqui [Sun, 12 Mar 2006 12:49:12 +0000 (13:49 +0100)]
[checkers] checker_put() to exec the free fn only if one is registered

Edward Goggin, EMC

18 years ago[multipathd] ev_add_map should return ok for spurious events
Christophe Varoqui [Thu, 2 Mar 2006 11:09:02 +0000 (12:09 +0100)]
[multipathd] ev_add_map should return ok for spurious events

Benjamin Marzinski, Redhat

18 years ago[libmultipath] "show config" segfault due to checkers framework work
Christophe Varoqui [Thu, 2 Mar 2006 10:32:17 +0000 (11:32 +0100)]
[libmultipath] "show config" segfault due to checkers framework work

18 years ago[libmultipath] per-hwentry product string blacklist
Christophe Varoqui [Thu, 2 Mar 2006 10:31:23 +0000 (11:31 +0100)]
[libmultipath] per-hwentry product string blacklist

Associate a default blacklist product string with each hwentry.
This is useful for the CLARiiON in order to blacklist LUNZ entries
by default.

Edward Goggin, EMC

18 years ago[libmultipath] pathinfo() should not try get_prio() if path is down
Christophe Varoqui [Thu, 2 Mar 2006 10:07:55 +0000 (11:07 +0100)]
[libmultipath] pathinfo() should not try get_prio() if path is down

David Wysochanski, Netapp
Edward Goggin, EMC

18 years ago[libmultipath] cycling remove/add a map leaks paths info
Christophe Varoqui [Sat, 25 Feb 2006 14:10:03 +0000 (15:10 +0100)]
[libmultipath] cycling remove/add a map leaks paths info

When you delete a multipath map, orphaning the path clears out some members
of the path structure.  Adding that map again doesn't bring them back.
Specifically, you loose your checker file descriptor.

The attached patch restores most of the members. It doesn't reset getuid.

Benjamin Marzinski, Redhat

18 years ago[multipathd] syncing path states
Christophe Varoqui [Tue, 21 Feb 2006 22:52:00 +0000 (23:52 +0100)]
[multipathd] syncing path states

Occasionally, the path states for multipathd and device mapper are out of
sync.
This happens either when multipathd starts, or after a multipath map is
created or reloaded (what a path is added or removed, or a map is added).
The attached patch syncs the paths' dmstate with it's state after one of
these actions happens.

Benjamin Marzinski, Redhat

18 years ago[multipathd] nr_active inc/dec losts or overzealous
Christophe Varoqui [Fri, 17 Feb 2006 23:10:49 +0000 (00:10 +0100)]
[multipathd] nr_active inc/dec losts or overzealous

There is some weirdness in the nr_active handling in multipathd, For
instance, whenever you change state to a PATH_DOWN or PATH_SHAKY state,
you decrement the number of active paths, even if you change from
PATH_DOWN to PATH_SHAKY.

This patch attempts to fix the problem.  It slightly changes how some
of the states are handled.

18 years ago[multipathd] due failback not happening
Christophe Varoqui [Fri, 17 Feb 2006 22:58:26 +0000 (23:58 +0100)]
[multipathd] due failback not happening

If the failback period is set to more that four times the polling interval,
paths will never fail back. This is because the failback_tick keeps getting
reset. The attached patch fixes this.

Benjamin Marzinski, Redhat

18 years ago[multipathd] blacklisting and blacklist changes ignored on spots
Christophe Varoqui [Fri, 17 Feb 2006 22:55:44 +0000 (23:55 +0100)]
[multipathd] blacklisting and blacklist changes ignored on spots

multipathd doesn't correctly blacklist devices by wwid, because the
blacklist check happens before the device information is known.

This patch fixes that.

Benjamin Marzinski, Redhat

18 years ago[build] fix install target glitch in alua prioritizer
Christophe Varoqui [Fri, 17 Feb 2006 22:47:37 +0000 (23:47 +0100)]
[build] fix install target glitch in alua prioritizer

Triggered by "make rpm" on fresh systems.
Spotted and fixed by Brian Wong, Pillardata

18 years ago[checkers] fix segfault in the checker lookup function
Christophe Varoqui [Tue, 14 Feb 2006 08:03:19 +0000 (09:03 +0100)]
[checkers] fix segfault in the checker lookup function

Multipath was segfaulting on startup because of some pointer arithmatic
craziness with the checkers. The attached patch fixes it.

Benjamin Marzinski, Redhat

18 years ago[checkers] API rewrite
Christophe Varoqui [Mon, 13 Feb 2006 10:33:31 +0000 (11:33 +0100)]
[checkers] API rewrite

The context handling and the layering were poor, so rewrite.

The users now need to :

- alloc a "struct checker"
- select a checker by name : checker_lookup()
- init own checker instance : checker_get()
- set the path file descriptor to check : checker_set_fd()
- use : checker_check()
- release : checker_put()

Checkers now are asked to provide 3 functions :

- foo_init : alloc and initialize the checker context
- foo_free : free the context
- foo      : the checking function proper

These 3 are registered in a static checkers array, along with the checker
name. Lookups are based on checker name.

The users are all updated :

- checker_get is folded into path (re)discovery
- checker_put is folded into path free/orphan

Additional gains :

- directio is updated to use a context to avoid computations upon each
  check
- checkers code is leaner

Please test and report.

18 years agoMerge with http://137.250.31.225/rsync/git/linux/storage/multipath-tools.git
Christophe Varoqui [Thu, 9 Feb 2006 22:12:51 +0000 (23:12 +0100)]
Merge ... 137.250.31.225/rsync/git/linux/storage/multipath-tools.git

18 years ago[kpartx] Add support for mac partition table
Bastian Blank [Thu, 9 Feb 2006 17:22:18 +0000 (17:22 +0000)]
[kpartx] Add support for mac partition table

Signed-off-by: Bastian Blank <waldi@debian.org>
18 years ago[build] make rpm fix
Christophe Varoqui [Thu, 9 Feb 2006 11:31:19 +0000 (12:31 +0100)]
[build] make rpm fix

Adaptation to new prioritizer and path changes

Brian Wong, Pillardata

18 years ago[libmultipath] discovery broken for DASD
Christophe Varoqui [Thu, 2 Feb 2006 16:16:19 +0000 (17:16 +0100)]
[libmultipath] discovery broken for DASD

Since I moved the configlet setting right after vendor/product string
fetching in sysfs_scsi_pathinfo() and forgot about its *ccw* counterpart.

Stefan Weinhuber and Stefan Bader spotted and fixed that.

18 years ago[libmultipath] set_default_blacklist() : fix the fix
Christophe Varoqui [Sun, 22 Jan 2006 16:37:38 +0000 (17:37 +0100)]
[libmultipath] set_default_blacklist() : fix the fix

18 years ago[libmultipath] set_default_blacklist() should not register .rodata strings
Christophe Varoqui [Sun, 22 Jan 2006 16:17:19 +0000 (17:17 +0100)]
[libmultipath] set_default_blacklist() should not register .rodata strings

... because free_blacklist will try to free those strings, and some glibc
are set to be verbose about that by default.

18 years ago[libmultipath] snprint_hw_prio_callout() segv
Christophe Varoqui [Sat, 21 Jan 2006 16:47:34 +0000 (17:47 +0100)]
[libmultipath] snprint_hw_prio_callout() segv

... if prio_callout is not defined in the default config section.

18 years ago[libmultipath] correct keyword lookup in snprint_hwentry()
Christophe Varoqui [Sat, 21 Jan 2006 16:31:19 +0000 (17:31 +0100)]
[libmultipath] correct keyword lookup in snprint_hwentry()

18 years ago[libmultipath] fix blacklist printing segv when "show config"
Christophe Varoqui [Sat, 21 Jan 2006 11:36:49 +0000 (12:36 +0100)]
[libmultipath] fix blacklist printing segv when "show config"

18 years ago[libmultipath] fix uninitialized var in discovery.c:get_serial()
Christophe Varoqui [Sat, 21 Jan 2006 10:55:36 +0000 (11:55 +0100)]
[libmultipath] fix uninitialized var in discovery.c:get_serial()

18 years ago[libmultipath] plug leaks in blacklist free_* functions
Christophe Varoqui [Sat, 21 Jan 2006 10:30:23 +0000 (11:30 +0100)]
[libmultipath] plug leaks in blacklist free_* functions

18 years ago[libmultipath] plug leak in discover.c:syfs_get_*()
Christophe Varoqui [Sat, 21 Jan 2006 10:26:58 +0000 (11:26 +0100)]
[libmultipath] plug leak in discover.c:syfs_get_*()

18 years ago[config] synthetic template mispelled the "user_friendly_names" keyword
Christophe Varoqui [Fri, 20 Jan 2006 23:29:17 +0000 (00:29 +0100)]
[config] synthetic template mispelled the "user_friendly_names" keyword

Missed the ending 's'.

18 years ago[libmultipath] "show conf" CLI command to output the blacklist too
Christophe Varoqui [Fri, 20 Jan 2006 15:09:03 +0000 (16:09 +0100)]
[libmultipath] "show conf" CLI command to output the blacklist too

All multipath.conf keywords and sections are now covered by "show conf".

18 years ago[libmultipath] fix new "blacklist" keyword incorrectly spelled to "devnode"
Christophe Varoqui [Fri, 20 Jan 2006 14:34:45 +0000 (15:34 +0100)]
[libmultipath] fix new "blacklist" keyword incorrectly spelled to "devnode"

18 years ago[libmultipath] yet more output prefixing
Christophe Varoqui [Fri, 20 Jan 2006 14:33:37 +0000 (15:33 +0100)]
[libmultipath] yet more output prefixing

18 years ago[libmultipath] move apply_format() from discovery.c to callout.c
Christophe Varoqui [Fri, 20 Jan 2006 14:01:58 +0000 (15:01 +0100)]
[libmultipath] move apply_format() from discovery.c to callout.c

18 years ago[libmultipath] don't set the hwe configlet pointer if !(mask & DI_SYSFS)
Christophe Varoqui [Fri, 20 Jan 2006 13:53:12 +0000 (14:53 +0100)]
[libmultipath] don't set the hwe configlet pointer if !(mask & DI_SYSFS)

Vendor and product strings are fetched if (mask & DI_SYSFS).

We shouldn't even try to find_hwe(vendor, product) if there is a chance
the params are not set.

18 years ago[libmultipath] more path: and multipath: output prefixing
Christophe Varoqui [Fri, 20 Jan 2006 11:46:52 +0000 (12:46 +0100)]
[libmultipath] more path: and multipath: output prefixing

18 years ago[libmultipath] add "map:" prefix to propsel functions output
Christophe Varoqui [Fri, 20 Jan 2006 11:09:07 +0000 (12:09 +0100)]
[libmultipath] add "map:" prefix to propsel functions output

18 years ago[libmultipath] path discovery reorganisation
Christophe Varoqui [Fri, 20 Jan 2006 10:54:21 +0000 (11:54 +0100)]
[libmultipath] path discovery reorganisation

o split logic in smaller functions
o prefix output with "%s:...", pp->dev
o rename "curpath" to "pp"

18 years ago[config] add the "device" blacklist keyword to config templates
Christophe Varoqui [Thu, 19 Jan 2006 16:08:10 +0000 (17:08 +0100)]
[config] add the "device" blacklist keyword to config templates

18 years ago[libmultipath] adapt discover.c to the new libsysfs2 API
Christophe Varoqui [Thu, 19 Jan 2006 15:51:09 +0000 (16:51 +0100)]
[libmultipath] adapt discover.c to the new libsysfs2 API

In fact, I tried to use only the functions common to libsysfs v1 and v2.

18 years ago[libmultipath] rename conf->default_hwhandler to conf->hwhandler
Christophe Varoqui [Wed, 18 Jan 2006 16:30:17 +0000 (17:30 +0100)]
[libmultipath] rename conf->default_hwhandler to conf->hwhandler

Misleading name. The real default is DEFAULT_HWHANDLER.

18 years ago[libmultipath] rename conf->default_getprio to conf->getprio
Christophe Varoqui [Wed, 18 Jan 2006 16:27:43 +0000 (17:27 +0100)]
[libmultipath] rename conf->default_getprio to conf->getprio

Misleading name. The real default is DEFAULT_GETPRIO.

18 years ago[libmultipath] rename conf->default_getuid to conf->getuid
Christophe Varoqui [Wed, 18 Jan 2006 16:24:24 +0000 (17:24 +0100)]
[libmultipath] rename conf->default_getuid to conf->getuid

Misleading name. The real default is DEFAULT_GETUID.