[Date Prev][Date Next] [Thread Prev][Thread Next] [Thread Index] [Date Index] [Author Index]

*From*: Jan Niehusmann <list039 gondor com>*To*: linux-lvm sistina com*Subject*: Re: [linux-lvm] vgscan -- ERROR with 2.4.0-test13-pre4*Date*: Sat, 23 Dec 2000 00:36:35 +0100

On Fri, Dec 22, 2000 at 06:17:30PM +0100, Jan Niehusmann wrote: > Now, when I try to boot the new kernel, I get the following message from > vgscan: > > vgscan -- ERROR "vg_read_with_pv_and_lv(): allocated LE of LV" can't get data of > volume group "vg1" from physical volume(s) Ok, I found the problem: The sort order of the pv's is wrong, and 0.9 is missing the code that sorts them. 0.8final's pv_read_all_pv_of_vg.c contains for ( p = 0; pv_tmp[p] != NULL; p++) { if ( strcmp ( pv_tmp[p]->vg_name, vg_name) == 0) { pv_this[pv_tmp[p]->pv_number-1] = pv_tmp[p]; np++; } } and 0.9's doesn't. The following patch fixes it (I did this fix to prove my theory, it may not be the right way to do it): Index: pv_read_all_pv_of_vg.c =================================================================== RCS file: /data/cvs/LVM/tools/lib/pv_read_all_pv_of_vg.c,v retrieving revision 1.3 diff -u -1 -b -p -r1.3 pv_read_all_pv_of_vg.c --- pv_read_all_pv_of_vg.c 2000/11/20 02:47:20 1.3 +++ pv_read_all_pv_of_vg.c 2000/12/22 23:27:00 @@ -103,2 +103,3 @@ int pv_read_all_pv_of_vg ( char *vg_name pv_this_sav = pv_this; + if(np<pv_tmp[p]->pv_number) np=pv_tmp[p]->pv_number; if ( ( pv_this = realloc ( pv_this, @@ -111,5 +112,4 @@ int pv_read_all_pv_of_vg ( char *vg_name } - pv_this[np] = pv_tmp[p]; - pv_this[np+1] = NULL; - np++; + pv_this[pv_tmp[p]->pv_number-1] = pv_tmp[p]; + //pv_this[np+1] = NULL; // XXX??? }

**References**:**[linux-lvm] vgscan -- ERROR with 2.4.0-test13-pre4***From:*Jan Niehusmann