- Merge with fixes from mainline.

- Import multipath-tools from SLES11 SP1.
- Increase initial timeout for 'tur' checker (bnc#616694)

- Set geometry information for multipath maps (bnc#613363)
- Reset 'running' parameter for directio (bnc#600043)
- Add fallback to init script for older versions (bnc#602957)

- Add HP 2000 to internal hardware table (bnc#603359)
- Make path state messages unique
- Add 'reassign_maps' configuration parameter
- Profiling fixes:
  * Update 'max_fds' handling
  * Use strcmp() instead of strcmp_chomp()
  * Simplify sysfs_get_device()
  * Remove duplicate calls to path_offline()
  * Simplify dm_get_name()
  * Fixup devt2devname()
  * Rework dm_reassign()
- check argument length in execute_program(bnc#610914)
- Do not use LOG_CONS when opening syslog (bnc#610914)
- Remove pid file usage from init scripts (bnc#600412)
- Fixup boot.multipath init script (bnc#600412)

- Always provide symlinks for udev (bnc#603785)

- Use minor number in ev_remove_map() (bnc#599770)
- signal_waiter() overwrites structure (bnc#591399)
- Serialize startup on large machines (bnc#598697)
- Update multipath(8) manpage for '-p' (bnc#602970)
- Mark 'readsector0' checker as deprecated (bnc#589340)

- Errorneous message 'error starting uevent listener'
- Graceful shutdown of logging thread (bnc#591399)

- Missing '-p' option for mkdir in mkinitrd script (bnc#597786)
- rdac message not printed correctly (bnc#598302)
- Use alias when printing log messages (bnc#598302)
- valgrind fixes (bnc#591399)
- Use VECTOR_SIZE() defines
- Update hwtable factorization
- Use log_close() on shutdown
- Use refcounting for checkers (bnc#591399)
- More valgrind fixes

- Provide correct persistent symlinks for user_friendly_names
  (bnc#596301)
- Fixup hardware table for LSI arrays (bnc#597713)
- Reassign maps during startup (bnc#586834)
- Update manpage

- Use mkdir -p in mkinitrd setup script (bnc#597786).

- Remove 'minor' argument from add_map_without_path
- Check for correct device-mapper device in uevent handler
- Start uevent service handler from main thread
- Do not reassign multipath maps (bnc#594341)
- Protect waiter structure by mutex (bnc#581200)
- Log directly to syslog on shutdown (bnc#581200)
- Clear up uevent queue on shutdown
- Add more IBM/FAStT arrays (bnc#578738)

- Display average priority as group priority (bnc#588591)
- Implement 'wait event' cli command (bnc#586834)
- Reset existing maps (bnc#577894)

- Setup 'checkint' when loading config file (bnc#586847)

- Fix typo in persistent rules for by-label/by-uuid
- Update debug string in verify_paths()
- Evaluate feature setting in verify_paths() (bnc#584197)

- Fixup 'async_timeout' initialization again (bnc#580413)

- 'reset log' cli command crashes daemon (bnc#577889)
- Initialize 'async_timeout' variable correctly (bnc#580413)

- Add hardware defaults for EMC Invista (bnc#573870)
- Use '--replace-whitespace' for scsi_id (bnc#572209)
- Asynchronous mode for tur checker (bnc#552688)
- Update queue_if_no_path after sync with kernel state
  (bnc#570932)
- Add 'max_polling_interval' config variable (bnc#570932)
- Add 'async_timeout' configuration variable (bnc#570932)
- Use default scsi_id callout for EMC Symmetrix (bnc#528481)
- Update path_offline() to return device status
- Update filename in init script
- Fixes from upstream:
  * do not allow 0 size for multipath devices
  * Add nexenta comstart hardware defaults
  * Add checks for conf->xxx
  * Add %z wildcard to display path serial
  * don't pretend config file has setup parameters
  * documentation fixes

- Fixup kpartx initrd script to handle loop devices (bnc#523749)
- Switch off 'queue_if_no_path' before removing maps (bnc#475523)
- Update logical partition handling (bnc#551827)

- Fix mkinitrd scripts for 64bit (bnc572143)
- Remove logical partitions maps with 'multipath -f'

- testing for existence of /lib64 is not sufficient to find out
  if we are building for a lib64 platform 

- Update dev_loss_tmo for no_path_retry (bnc#492469)

- Merge in changes from OpenSUSE 11.2
- Update 'no_path_retry' correctly for failed paths (bnc#534666)
- Update no_path_retry setting when evaluating features (bnc#542145)
- directio: block count calculation wrong (bnc#549028)
- multipath segfaults if configuration file contains errors
  (bnc#540118)

- Fixup strip whitespaces from getuid output (bnc#542085)
- Change prefix for DASD devices to 'ccw'
- Update no_path_retry setting when evaluating features (bnc#542145)

- Update features when queue_if_no_path is set (bnc#511607)
- Ignore error messages when multipathd is not started
- Add debugging output for feature changes
- Add generic LSI/Engenio controller (bnc#508030)
- Update 'no_path_retry' correctly for failed paths (bnc#534666)
- TUR checker should not return 'failed' for reservation conflict
  (bnc#498413)
- Check for errors in pthread_create()
- Lock vectors during shutdown
- Cleanup various MALLOC/REALLOC callers
- Fix multipathd crash on shutdown
- Do not run kpartx on dm-uevent messages (bnc#473352)
- Set pthread stacksize correctly (bnc#485287)
- Add STK arrays to internal hardware table (bnc#503855)
- Correct persistent symlink for cciss (bnc#497997)
- Backport some fixes from upstream (bnc#445023)
- Add 'reset log' cli command
- no_path_retry <N> causes I/O to fail (bnc#485281)
- Terminate uevent service queue
- Wait for daemon to shutdown (bnc#481389)
- Update cli request processing
- Safe memory allocation in cli_handlers
- Use 'LOG_CONS' option for openlog()
- Remove sysfs attribute cache
- Add 'shutdown' cli command
- Display FC error messages correctly
- Wait for devices in init script (bnc#487586)
- Always synchronize with dm state (bnc#447887)
- Add 'aas' path prioritizer (bnc#472069)
- Synchronize daemon startup with init file (bnc#481389)
- Merge feature string in assemble_map (bnc#507793)
 -------------------------------------------------------------------

- Reset checker message for blocked checkers
- Increase priority for EMC Clariion arrays (bnc#484529)
- Start waiter threads for single paths correctly (bnc#473841)
- Use pthread_sigmask in alias.c when called from daemon.

- Add %pre and %post scripts to stop multipathd during update
- Don't set FC parameter on non-SCSI devices
- multipath -t crashes with invalid configuration file

- Don't remove partition mappings on stop (bnc#468826)
- Set stacksize for log thread
- Terminate all I/O before flushing maps (bnc#475523)
- Select 'features' keyword from multipath setting (bnc#465009)

- Use lists for uevent processing (bnc#478874)
- Set stacksize of uevent handling thread (bnc#478874)
- Increase uevent buffer size
- Strip trailing blanks from wwid
- Stack overflow in uev_trigger (bnc#476540)

- Fixup multibus zero path handling (bnc#476330)
- Update checker handling for blocked devices
- Only pass block events to multipathd
- Clean up uevent processing (bnc#478874)
- Set stacksize correctly for event processing thread (bnc#478874)

- Remove stray umask() call (bnc#458598)
- Don't call kpartx if no paths are active (bnc#473352)

- Multipathd dies immediately after startup (bnc#473029)
- Return ghost state if port is in standby (bnc#475816)
- Switch off queue_if_no_path before removing paths (bnc#475523)

- Fix leastpending loadbalancer output (bnc#444199)
- Start waitevent checker on new paths (bnc#473841)
- Use 'noflush' for kpartx (bnc#473352)

- Display multipath output for leastpending loadbalancer
  properly (bnc#444199)

- Set queue_if_no_path setting during map reload (bnc#472253)
- Remove obsolete 'umount map' uevent handling
- Retry TUR on driver errors (bnc#456961)

- Copy persistent bindings file into initramfs (bnc#468804)
- Invert DM_STATE check for kpartx rules (bnc#440959)

- Correct dbg_malloc() definition
- Fix more memory leaks
- Double free on path release (bnc#458393)

OBS-URL: https://build.opensuse.org/package/show/Base:System/multipath-tools?expand=0&rev=16
This commit is contained in:
Hannes Reinecke 2010-07-06 14:27:45 +00:00 committed by Git OBS Bridge
parent 55911f9344
commit 5c27a15766
8 changed files with 329 additions and 188 deletions

View File

@ -1,13 +0,0 @@
Index: multipath-tools-0.4.8/libmultipath/configure.c
===================================================================
--- multipath-tools-0.4.8.orig/libmultipath/configure.c 2010-02-26 13:34:41.000000000 +0100
+++ multipath-tools-0.4.8/libmultipath/configure.c 2010-02-26 13:35:31.000000000 +0100
@@ -167,7 +167,7 @@ select_action (struct multipath * mpp, v
if (!find_mp_by_wwid(curmp, mpp->wwid)) {
condlog(2, "%s: remove (wwid changed)", cmpp->alias);
dm_flush_map(mpp->alias);
- strncat(cmpp->wwid, mpp->wwid, WWID_SIZE);
+ strncat(cmpp->wwid, mpp->wwid, WWID_SIZE-strlen(cmpp->wwid)-1);
drop_multipath(curmp, cmpp->wwid, KEEP_PATHS);
mpp->action = ACT_CREATE;
condlog(3, "%s: set ACT_CREATE (map wwid change)",

View File

@ -1,23 +0,0 @@
Ouch, ouch, ouch!
Since when is the presence of a directory an indicator for whether
a 64- or 32-bit library is to be built. Or inspected, for that
matter.
---
libmultipath/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: multipath-tools-0.4.8/libmultipath/Makefile
===================================================================
--- multipath-tools-0.4.8.orig/libmultipath/Makefile
+++ multipath-tools-0.4.8/libmultipath/Makefile
@@ -14,7 +14,7 @@ OBJS = memory.o parser.o vector.o devmap
log.o configure.o structs_vec.o sysfs.o prio.o checkers.o \
lock.o waiter.o
-LIBDM_API_FLUSH = $(shell if test -d /lib64 ; then objdump -T /lib64/libdevmapper.so* ; else objdump -T /lib/libdevmapper.so.* ; fi | grep -c dm_task_no_flush)
+LIBDM_API_FLUSH = $(shell objdump -T ${LIB}/libdevmapper.so* | grep -c dm_task_no_flush)
CFLAGS += -D_GNU_SOURCE
ifneq ($(strip $(LIBDM_API_FLUSH)),0)

View File

@ -1,30 +0,0 @@
We need _GNU_SOURCE even when dmapi is not there.
cc -O2 -g -m32 -mtune=ultrasparc -fPIC -DLIB_STRING=\"lib64\"
-c -o uevent.o uevent.c
uevent.c: In function 'uevent_listen':
uevent.c:262: error: invalid application of 'sizeof' to
incomplete type 'struct ucred'
uevent.c:290: error: dereferencing pointer to incomplete type
uevent.c:291: error: dereferencing pointer to incomplete type
---
libmultipath/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: multipath-tools-0.4.8/libmultipath/Makefile
===================================================================
--- multipath-tools-0.4.8.orig/libmultipath/Makefile
+++ multipath-tools-0.4.8/libmultipath/Makefile
@@ -16,8 +16,9 @@ OBJS = memory.o parser.o vector.o devmap
LIBDM_API_FLUSH = $(shell if test -d /lib64 ; then objdump -T /lib64/libdevmapper.so* ; else objdump -T /lib/libdevmapper.so.* ; fi | grep -c dm_task_no_flush)
+CFLAGS += -D_GNU_SOURCE
ifneq ($(strip $(LIBDM_API_FLUSH)),0)
- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
+ CFLAGS += -DLIBDM_API_FLUSH
endif
all: $(LIBS)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6ee2872ba8dd45be1f365c3e1cc76fc1e4294eca617e6830cf9a51b60173403b
size 131574

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f3534f494cde62d673c671f5b84e8179967389fdf79b0e70e4b8288261b7f494
size 146169

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Tue Jul 6 16:17:27 CEST 2010 - hare@suse.de
- Merge with fixes from mainline.
-------------------------------------------------------------------
Wed Jun 30 16:19:00 UTC 2010 - jengelh@medozas.de
@ -6,15 +11,185 @@ Wed Jun 30 16:19:00 UTC 2010 - jengelh@medozas.de
sheer presence of lib64, which is wrong)
- always add in -D_GNU_SOURCE to get at struct ucred
-------------------------------------------------------------------
Wed Jun 23 15:09:46 CEST 2010 - hare@suse.de
- Increase initial timeout for 'tur' checker (bnc#616694)
-------------------------------------------------------------------
Fri Jun 18 13:19:13 CEST 2010 - hare@suse.de
- Set geometry information for multipath maps (bnc#613363)
- Reset 'running' parameter for directio (bnc#600043)
- Add fallback to init script for older versions (bnc#602957)
-------------------------------------------------------------------
Fri Jun 4 12:18:02 CEST 2010 - hare@suse.de
- Add HP 2000 to internal hardware table (bnc#603359)
- Make path state messages unique
- Add 'reassign_maps' configuration parameter
- Profiling fixes:
* Update 'max_fds' handling
* Use strcmp() instead of strcmp_chomp()
* Simplify sysfs_get_device()
* Remove duplicate calls to path_offline()
* Simplify dm_get_name()
* Fixup devt2devname()
* Rework dm_reassign()
- check argument length in execute_program(bnc#610914)
- Do not use LOG_CONS when opening syslog (bnc#610914)
- Remove pid file usage from init scripts (bnc#600412)
- Fixup boot.multipath init script (bnc#600412)
-------------------------------------------------------------------
Wed May 12 08:08:47 CEST 2010 - hare@suse.de
- Always provide symlinks for udev (bnc#603785)
-------------------------------------------------------------------
Thu May 6 14:02:11 CEST 2010 - hare@suse.de
- Use minor number in ev_remove_map() (bnc#599770)
- signal_waiter() overwrites structure (bnc#591399)
- Serialize startup on large machines (bnc#598697)
- Update multipath(8) manpage for '-p' (bnc#602970)
- Mark 'readsector0' checker as deprecated (bnc#589340)
-------------------------------------------------------------------
Mon Apr 26 13:33:30 CEST 2010 - hare@suse.de
- Errorneous message 'error starting uevent listener'
- Graceful shutdown of logging thread (bnc#591399)
-------------------------------------------------------------------
Mon Apr 26 12:02:32 CEST 2010 - hare@suse.de
- Missing '-p' option for mkdir in mkinitrd script (bnc#597786)
- rdac message not printed correctly (bnc#598302)
- Use alias when printing log messages (bnc#598302)
- valgrind fixes (bnc#591399)
- Use VECTOR_SIZE() defines
- Update hwtable factorization
- Use log_close() on shutdown
- Use refcounting for checkers (bnc#591399)
- More valgrind fixes
-------------------------------------------------------------------
Tue Apr 20 13:41:07 CEST 2010 - hare@suse.de
- Provide correct persistent symlinks for user_friendly_names
(bnc#596301)
- Fixup hardware table for LSI arrays (bnc#597713)
- Reassign maps during startup (bnc#586834)
- Update manpage
-------------------------------------------------------------------
Tue Apr 20 12:51:53 CEST 2010 - mmarek@suse.cz
- Use mkdir -p in mkinitrd setup script (bnc#597786).
-------------------------------------------------------------------
Fri Apr 9 15:30:55 CEST 2010 - hare@suse.de
- Remove 'minor' argument from add_map_without_path
- Check for correct device-mapper device in uevent handler
- Start uevent service handler from main thread
- Do not reassign multipath maps (bnc#594341)
- Protect waiter structure by mutex (bnc#581200)
- Log directly to syslog on shutdown (bnc#581200)
- Clear up uevent queue on shutdown
- Add more IBM/FAStT arrays (bnc#578738)
-------------------------------------------------------------------
Mon Mar 29 16:35:15 CEST 2010 - hare@suse.de
- Display average priority as group priority (bnc#588591)
- Implement 'wait event' cli command (bnc#586834)
- Reset existing maps (bnc#577894)
-------------------------------------------------------------------
Mon Mar 15 13:54:56 CET 2010 - hare@suse.de
- Setup 'checkint' when loading config file (bnc#586847)
-------------------------------------------------------------------
Wed Mar 10 11:20:56 CET 2010 - hare@suse.de
- Fix typo in persistent rules for by-label/by-uuid
- Update debug string in verify_paths()
- Evaluate feature setting in verify_paths() (bnc#584197)
-------------------------------------------------------------------
Fri Mar 5 09:34:37 CET 2010 - hare@suse.de
- Fixup 'async_timeout' initialization again (bnc#580413)
-------------------------------------------------------------------
Fri Feb 26 12:37:10 UTC 2010 - coolo@novell.com
- fix buffer overflow in strncat
-------------------------------------------------------------------
Wed Jan 27 16:16:12 CST 2010 - cmeng@novell.com
Mon Feb 22 10:08:44 CET 2010 - hare@suse.de
- Fix 'multipath -F' can't remove logical partitions (bnc#551827)
- 'reset log' cli command crashes daemon (bnc#577889)
- Initialize 'async_timeout' variable correctly (bnc#580413)
-------------------------------------------------------------------
Thu Feb 4 11:28:36 CET 2010 - hare@suse.de
- Add hardware defaults for EMC Invista (bnc#573870)
- Use '--replace-whitespace' for scsi_id (bnc#572209)
- Asynchronous mode for tur checker (bnc#552688)
- Update queue_if_no_path after sync with kernel state
(bnc#570932)
- Add 'max_polling_interval' config variable (bnc#570932)
- Add 'async_timeout' configuration variable (bnc#570932)
- Use default scsi_id callout for EMC Symmetrix (bnc#528481)
- Update path_offline() to return device status
- Update filename in init script
- Fixes from upstream:
* do not allow 0 size for multipath devices
* Add nexenta comstart hardware defaults
* Add checks for conf->xxx
* Add %z wildcard to display path serial
* don't pretend config file has setup parameters
* documentation fixes
-------------------------------------------------------------------
Mon Jan 25 14:44:43 CET 2010 - hare@suse.de
- Fixup kpartx initrd script to handle loop devices (bnc#523749)
- Switch off 'queue_if_no_path' before removing maps (bnc#475523)
- Update logical partition handling (bnc#551827)
-------------------------------------------------------------------
Fri Jan 22 16:19:17 CET 2010 - hare@suse.de
- Fix mkinitrd scripts for 64bit (bnc572143)
- Remove logical partitions maps with 'multipath -f'
-------------------------------------------------------------------
Fri Jan 22 14:30:36 CET 2010 - ro@suse.de
- testing for existence of /lib64 is not sufficient to find out
if we are building for a lib64 platform
-------------------------------------------------------------------
Mon Jan 11 15:10:18 CET 2010 - hare@suse.de
- Update dev_loss_tmo for no_path_retry (bnc#492469)
-------------------------------------------------------------------
Tue Nov 17 16:36:19 CET 2009 - hare@suse.de
- Merge in changes from OpenSUSE 11.2
- Update 'no_path_retry' correctly for failed paths (bnc#534666)
- Update no_path_retry setting when evaluating features (bnc#542145)
- directio: block count calculation wrong (bnc#549028)
- multipath segfaults if configuration file contains errors
(bnc#540118)
-------------------------------------------------------------------
Thu Oct 22 16:29:35 CEST 2009 - hare@suse.de
@ -22,6 +197,24 @@ Thu Oct 22 16:29:35 CEST 2009 - hare@suse.de
- Make 'param' local (bnc#548708)
- Include multipath-fix.patch in git tree.
-------------------------------------------------------------------
Mon Sep 28 15:34:02 CEST 2009 - hare@suse.de
- Fixup strip whitespaces from getuid output (bnc#542085)
- Change prefix for DASD devices to 'ccw'
- Update no_path_retry setting when evaluating features (bnc#542145)
-------------------------------------------------------------------
Wed Sep 16 12:54:03 CEST 2009 - hare@suse.de
- Update features when queue_if_no_path is set (bnc#511607)
- Ignore error messages when multipathd is not started
- Add debugging output for feature changes
- Add generic LSI/Engenio controller (bnc#508030)
- Update 'no_path_retry' correctly for failed paths (bnc#534666)
- TUR checker should not return 'failed' for reservation conflict
(bnc#498413)
-------------------------------------------------------------------
Tue Sep 8 20:56:53 UTC 2009 - aj@suse.de
@ -37,10 +230,125 @@ Fri Aug 21 15:49:47 CEST 2009 - hare@suse.de
- Implement '-u' option for kpartx (bnc#517442)
-------------------------------------------------------------------
Mon Jul 13 12:24:34 CEST 2009 - hare@suse.de
- Check for errors in pthread_create()
- Lock vectors during shutdown
- Cleanup various MALLOC/REALLOC callers
- Fix multipathd crash on shutdown
- Do not run kpartx on dm-uevent messages (bnc#473352)
- Set pthread stacksize correctly (bnc#485287)
- Add STK arrays to internal hardware table (bnc#503855)
- Correct persistent symlink for cciss (bnc#497997)
- Backport some fixes from upstream (bnc#445023)
- Add 'reset log' cli command
- no_path_retry <N> causes I/O to fail (bnc#485281)
- Terminate uevent service queue
- Wait for daemon to shutdown (bnc#481389)
- Update cli request processing
- Safe memory allocation in cli_handlers
- Use 'LOG_CONS' option for openlog()
- Remove sysfs attribute cache
- Add 'shutdown' cli command
- Display FC error messages correctly
- Wait for devices in init script (bnc#487586)
- Always synchronize with dm state (bnc#447887)
- Add 'aas' path prioritizer (bnc#472069)
- Synchronize daemon startup with init file (bnc#481389)
- Merge feature string in assemble_map (bnc#507793)
-------------------------------------------------------------------
Fri Jun 19 10:35:46 CEST 2009 - coolo@novell.com
- disable as-needed for this package as it fails to build with it
-------------------------------------------------------------------
Fri Mar 20 10:43:12 CET 2009 - hare@suse.de
- Reset checker message for blocked checkers
- Increase priority for EMC Clariion arrays (bnc#484529)
- Start waiter threads for single paths correctly (bnc#473841)
- Use pthread_sigmask in alias.c when called from daemon.
-------------------------------------------------------------------
Thu Mar 19 12:09:03 CET 2009 - hare@suse.de
- Add %pre and %post scripts to stop multipathd during update
- Don't set FC parameter on non-SCSI devices
- multipath -t crashes with invalid configuration file
-------------------------------------------------------------------
Fri Mar 13 14:21:05 CET 2009 - hare@suse.de
- Don't remove partition mappings on stop (bnc#468826)
- Set stacksize for log thread
- Terminate all I/O before flushing maps (bnc#475523)
- Select 'features' keyword from multipath setting (bnc#465009)
-------------------------------------------------------------------
Tue Mar 10 12:46:36 CET 2009 - hare@suse.de
- Use lists for uevent processing (bnc#478874)
- Set stacksize of uevent handling thread (bnc#478874)
- Increase uevent buffer size
- Strip trailing blanks from wwid
- Stack overflow in uev_trigger (bnc#476540)
-------------------------------------------------------------------
Thu Feb 26 12:36:40 CET 2009 - hare@suse.de
- Fixup multibus zero path handling (bnc#476330)
- Update checker handling for blocked devices
- Only pass block events to multipathd
- Clean up uevent processing (bnc#478874)
- Set stacksize correctly for event processing thread (bnc#478874)
-------------------------------------------------------------------
Mon Feb 23 16:36:32 CET 2009 - hare@suse.de
- Remove stray umask() call (bnc#458598)
- Don't call kpartx if no paths are active (bnc#473352)
-------------------------------------------------------------------
Thu Feb 19 16:26:32 CET 2009 - hare@suse.de
- Multipathd dies immediately after startup (bnc#473029)
- Return ghost state if port is in standby (bnc#475816)
- Switch off queue_if_no_path before removing paths (bnc#475523)
-------------------------------------------------------------------
Mon Feb 9 14:53:01 CET 2009 - hare@suse.de
- Fix leastpending loadbalancer output (bnc#444199)
- Start waitevent checker on new paths (bnc#473841)
- Use 'noflush' for kpartx (bnc#473352)
-------------------------------------------------------------------
Fri Feb 6 15:00:45 CET 2009 - hare@suse.de
- Display multipath output for leastpending loadbalancer
properly (bnc#444199)
-------------------------------------------------------------------
Wed Feb 4 11:38:31 CET 2009 - hare@suse.de
- Set queue_if_no_path setting during map reload (bnc#472253)
- Remove obsolete 'umount map' uevent handling
- Retry TUR on driver errors (bnc#456961)
-------------------------------------------------------------------
Tue Feb 3 11:22:41 CET 2009 - hare@suse.de
- Copy persistent bindings file into initramfs (bnc#468804)
- Invert DM_STATE check for kpartx rules (bnc#440959)
-------------------------------------------------------------------
Mon Feb 2 11:27:51 CET 2009 - hare@suse.de
- Correct dbg_malloc() definition
- Fix more memory leaks
- Double free on path release (bnc#458393)
-------------------------------------------------------------------
Mon Jan 26 14:17:57 CET 2009 - hare@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package multipath-tools (Version 0.4.8)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -21,21 +21,17 @@
Name: multipath-tools
BuildRequires: device-mapper-devel libaio-devel readline-devel
Url: http://christophe.varoqui.free.fr/
License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ ; Public Domain, Freeware ; MIT License (or similar)
License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later ; Public Domain, Freeware ; MIT License (or similar)
Group: System/Base
Requires: device-mapper kpartx
PreReq: %insserv_prereq %fillup_prereq coreutils grep
AutoReqProv: on
Version: 0.4.8
Release: 47
Release: 41
Summary: Tools to Manage Multipathed Devices with the device-mapper
Source: multipath-tools-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Patch0: %{name}-%{version}-opensuse-11.2.diff.bz2
Patch1: remove-stacked-partitions.diff
Patch2: fixbuffers.diff
Patch3: mpt-ucred.diff
Patch4: libdir.diff
Patch0: %{name}-%{version}-opensuse-11.3.diff.bz2
%description
This package provides the tools to manage multipathed devices by
@ -59,7 +55,7 @@ Authors:
Christophe Varoqui <christophe.varoqui@free.fr>
%package -n kpartx
License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ ; Public Domain, Freeware ; MIT License (or similar)
License: BSD 3-clause (or similar) ; GPL v2 or later ; LGPL v2.1 or later ; Public Domain, Freeware ; MIT License (or similar)
Summary: Manages partition tables on device-mapper devices
Group: System/Base
Requires: device-mapper
@ -77,9 +73,6 @@ Authors:
%prep
%setup -q -n multipath-tools-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch -P 3 -P 4 -p1
%build
# This package failed when testing with -Wl,-as-needed being default.
@ -94,7 +87,17 @@ mkdir -p $RPM_BUILD_ROOT/var/cache/multipath/
%clean
[ "$RPM_BUILD_ROOT" != / ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
%pre
[ -f /.buildenv ] && exit 0
if [ -f /etc/init.d/multipathd ] && dmsetup --target multipath table | grep -q multipath ; then
/etc/init.d/multipathd stop
fi
%post
[ -f /.buildenv ] && exit 0
if dmsetup --target multipath table | grep -q multipath ; then
/etc/init.d/multipathd start
fi
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
exit 0
#{insserv /etc/init.d/multipathd}
@ -116,7 +119,7 @@ exit 0
%config /etc/init.d/multipathd
%config /etc/init.d/boot.multipath
%config /etc/udev/rules.d/71-multipath.rules
/%{_lib}/libmultipath.so
/%{_lib}/libmultipath.so.0
/%{_lib}/multipath
/sbin/multipath
/sbin/multipathd

View File

@ -1,104 +0,0 @@
Index: multipath-tools-0.4.8/libmultipath/devmapper.c
===================================================================
--- multipath-tools-0.4.8.orig/libmultipath/devmapper.c
+++ multipath-tools-0.4.8/libmultipath/devmapper.c
@@ -912,6 +912,60 @@ bad:
return NULL;
}
+dm_get_full_uuid(char *name, char *uuid)
+{
+ struct dm_task *dmt;
+ const char *uuidtmp;
+ int r = 1;
+
+ dmt = dm_task_create(DM_DEVICE_INFO);
+ if (!dmt)
+ return 1;
+
+ if (!dm_task_set_name (dmt, name))
+ goto uuidout;
+
+ if (!dm_task_run(dmt))
+ goto uuidout;
+
+ uuidtmp = dm_task_get_uuid(dmt);
+ if (uuidtmp) {
+ strcpy(uuid, uuidtmp);
+ }
+ else
+ uuid[0] = '\0';
+
+ r = 0;
+uuidout:
+ dm_task_destroy(dmt);
+ return r;
+}
+
+/*
+ * returns:
+ * 0 : if both uuids end with same suffix which starts with UUID_PREFIX
+ * 1 : otherwise
+ */
+int
+dm_compare_uuid(const char* mapname1, const char* mapname2)
+{
+ char *p1, *p2;
+ char uuid1[WWID_SIZE], uuid2[WWID_SIZE];
+
+ if (dm_get_full_uuid(mapname1, uuid1))
+ return 1;
+
+ if (dm_get_full_uuid(mapname2, uuid2))
+ return 1;
+
+ p1 = strstr(uuid1, UUID_PREFIX);
+ p2 = strstr(uuid2, UUID_PREFIX);
+ if (p1 && p2 && !strcmp(p1, p2))
+ return 0;
+
+ return 1;
+}
+
int
dm_remove_partmaps (const char * mapname)
{
@@ -950,15 +1004,10 @@ dm_remove_partmaps (const char * mapname
(dm_type(names->name, TGT_PART) > 0) &&
/*
- * and the multipath mapname and the part mapname start
- * the same
+ * and the both uuid end with same suffix which
+ * starts with UUID_PREFIX
*/
- !strncmp(names->name, mapname, strlen(mapname)) &&
-
- /*
- * and the opencount is 0 for us to allow removal
- */
- !dm_get_opencount(names->name) &&
+ !dm_compare_uuid(names->name, mapname) &&
/*
* and we can fetch the map table from the kernel
@@ -974,6 +1023,19 @@ dm_remove_partmaps (const char * mapname
* then it's a kpartx generated partition.
* remove it.
*/
+
+ /*
+ * if the opencount is not 0, maybe some other
+ * partitons depend on it.
+ */
+ if (dm_get_opencount(names->name)) {
+ dm_remove_partmaps(names->name);
+ if (dm_get_opencount(names->name)) {
+ condlog(2, "%s: map in use", names->name);
+ goto out;
+ }
+ }
+
condlog(4, "partition map %s removed",
names->name);
dm_simplecmd_flush(DM_DEVICE_REMOVE, names->name);