multipath.conf.annotated: remove 'udev_dir'

Deprecated, remove it.

References: bnc#820899

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipath: Implement 'property' blacklist

Multipath can only handle device properly which support the VPD
page 0x83. Originally this was ensured by 'scsi_id', which would
not present an ID_SERIAL value in these cases.
With the move to udev 'ID_SERIAL' is now always present, so
multipath would try to attach to _all_ SCSI devices.
This patch implements an 'property' blacklist, which allows to
blacklist a device based on the existence of udev properties.
Any device not providing the udev property from the whitelist
will be ignored.
The default whitelist is set to '(ID_WWN|ID_SCSI_VPD)'.

References: bnc#816063

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipath: correctly initialize variable in sysfs_set_rport_tmo()

We need to initialize the 'tmo' variable; otherwise the
dev_loss_tmo value might not be set correctly.

References: bnc#819600

Signed-off-by: Hannes Reinecke <hare@suse.de>
Do not print error when rport is blocked

When an rport is blocked any write to the dev_loss_tmo
attribute will fail with EBUSY. But that's perfectly
normal and nothing to worry about, so decrease the
logging priority for these cases.

References: bnc#819600

Signed-off-by: Hannes Reinecke <hare@suse.de>
- Update Changelog.
multipath: reference the udev context when starting event queue

The uevent listener is running asynchronously, so it might still
be active and receiving events when the main thread is already
shut down. So it need to take a separate reference to the udev
context to avoid the context becoming invalid while the listener
is running.

References: bnc#821419

Signed-off-by: Hannes Reinecke <hare@suse.de>
Fixup 'correctly initialize variable in sysfs_set_rport_tmo()'

Commit 'correctly initialize variable in sysfs_set_rport_tmo()'
was not complete; in some cases it would still fail to set
the dev_loss_tmo correctly.

References: bnc#819600

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipath.conf.5: Fixup default path grouping policy

The default path grouping policy is 'failover', not 'multibus'.

References: bnc#820899

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipathd: valgrind fixes

valgrind complained about uninitialized memory.
As usual, valgrind was right, although the memory never was
actually referenced.

Signed-off-by: Hannes Reinecke <hare@suse.de>
- Update Changelog.
multipathd: increase stacksize for uevent listener

libudev has quite some heavy stack usage, so the default stack size
is not enough here.

References: bnc#821419

Signed-off-by: Hannes Reinecke <hare@suse.de>
- Update Changelog.
Specify checker_timeout in seconds

Commit 8d3f07da changed the internal value for checker_timeout
to be in milliseconds, which wasn't reflected in the tur checker.
So better scale it back to seconds, and change the callers to
scale it to milliseconds where appropriate.

References: bnc#824913

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipath: correctly display 'timeout' checker status

The path checker status of 'timeout' isn't displayed correctly.

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipath: fix setting of fast_io_fail_tmo

Setting fast_io_fail_tmo to the same value as dev_loss_tmo is
not allowed by the kernel. Increase dev_loss_tmo by 1 in such
cases to make it strictly greated than fast_io_fail_tmo.

References: bnc#824148

Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
multipath: reset queue_if_no_path if flush failed

When flushing a map failed the 'queue_if_no_path' setting is
getting lost.

References: bnc#828868

Signed-off-by: Hannes Reinecke <hare@suse.de>