[linux-lvm] Patch for vg_status_with_pv_and_lv.c

Stephenson, Dale dstephenson at snapserver.com
Wed May 1 14:16:02 UTC 2002


I'm not sure if I sent this patch out when I generated it (I'm guessing not,
since it doesn't seem to be different in CVS), so I'm sending it out now.

This patch solves a segfault in lvscan.  When there was a problem reading
the lv_list (lv_status_all_lv_of_vg() returned an error) in
vg_status_with_pv_and_lv.c, the routine would still call
vg_setup_pointers_for_snapshots.  Since the error had prevented setting up
the vg->lv[] array, this didn't work.  I just moved
vg_setup_pointers_for_snapshot inside the no error case.  No one uses the vg
if an error is returned, so it doesn't matter that it isn't setup for
snapshots :->.

Dale J. Stephenson
steph at snapserver.com

--- 1.0.3/tools/lib/vg_status_with_pv_and_lv.c.orig	Thu Apr 11 10:45:18
2002
+++ 1.0.3/tools/lib/vg_status_with_pv_and_lv.c	Thu Apr 11 10:45:41 2002
@@ -57,10 +57,10 @@
       for ( p = 0; pv[p] != NULL; p++) (*vg)->pv[p] = pv[p];
       for ( ; p < (*vg)->pv_max; p++) (*vg)->pv[p] = NULL;
       for ( l = 0; l < (*vg)->lv_max; l++) (*vg)->lv[l] = lv[l];
-   }
 
-   /* Set up core pointers for snapshots */
-   vg_setup_pointers_for_snapshots ( *vg);
+      /* Set up core pointers for snapshots */
+      vg_setup_pointers_for_snapshots ( *vg);
+   }
 
    debug_leave ( "vg_status_with_pv_and_lv -- LEAVING with ret: %d\n",
ret);
    return ret;




More information about the linux-lvm mailing list