device-mapper-multipath/0052-RH-fix-bad-derefs.patch
Benjamin Marzinski aba856f28c device-mapper-multipath-0.4.9-55
Modify 0015-RH-fix-output-buffer.patch
  * Fix memory leak
Add 0048-RH-print-defaults.patch
Add 0049-RH-remove-ID_FS_TYPE.patch
  * remove ID_FS_TYPE udev enviroment variable for multipath devices
Add 0051-UP-fix-cli-resize.patch
  * check before dereferencing variables
Add 0052-RH-fix-bad-derefs.patch
  * setup multipath free the multipath device when it fails, so don't keep
    using it.
Add 0053-UP-fix-failback.patch
  * setting failback in the devices section was broken
Add 0054-UP-keep-udev-ref.patch
  * multipathd needs to keep the same udev object across reconfigures
Add 0055-UP-handle-quiesced-paths.patch
  * quiesced paths should be treated as down
Add 0056-UP-alua-prio-fix.patch
  * Don't count the preferred bit for paths that are active/optimized
Add 0057-UP-fix-tmo.patch
  * Cleanup how multipath sets dev_loss_tmo and fast_io_fail_tmo.  Also
    make multipath get changing values directly from sysfs, instead of
    from udev, which caches them.
Add 0058-UP-fix-failback.patch
  * make failback print the default value when you show configs.
Add 0059-UP-flush-failure-queueing.patch
  * If you can't flush a multipath device, restore the queue_if_no_paths
    value
Add 0060-UP-uevent-loop-udev.patch
  * make ueventloop grab it's own udev reference, since it is cancelled
    asychnrously.
2013-07-25 10:15:48 -05:00

55 lines
1.5 KiB
Diff

---
multipathd/cli_handlers.c | 3 ++-
multipathd/main.c | 12 ++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
Index: multipath-tools-130222/multipathd/cli_handlers.c
===================================================================
--- multipath-tools-130222.orig/multipathd/cli_handlers.c
+++ multipath-tools-130222/multipathd/cli_handlers.c
@@ -632,7 +632,8 @@ cli_resize(void *v, char **reply, int *l
return 1;
dm_lib_release();
- setup_multipath(vecs, mpp);
+ if (setup_multipath(vecs, mpp) != 0)
+ return 1;
sync_map_state(mpp);
return 0;
Index: multipath-tools-130222/multipathd/main.c
===================================================================
--- multipath-tools-130222.orig/multipathd/main.c
+++ multipath-tools-130222/multipathd/main.c
@@ -134,7 +134,6 @@ coalesce_maps(struct vectors *vecs, vect
struct multipath * ompp;
vector ompv = vecs->mpvec;
unsigned int i;
- int j;
vector_foreach_slot (ompv, ompp, i) {
if (!find_mp_by_wwid(nmpv, ompp->wwid)) {
@@ -148,16 +147,17 @@ coalesce_maps(struct vectors *vecs, vect
/*
* may be just because the device is open
*/
+ if (setup_multipath(vecs, ompp) != 0) {
+ i--;
+ continue;
+ }
if (!vector_alloc_slot(nmpv))
return 1;
vector_set_slot(nmpv, ompp);
- setup_multipath(vecs, ompp);
- if ((j = find_slot(ompv, (void *)ompp)) != -1)
- vector_del_slot(ompv, j);
-
- continue;
+ vector_del_slot(ompv, i);
+ i--;
}
else {
dm_lib_release();