Known problems with LVM 0.8i ---------------------------- Updated: 2000-01-31 1. compile with linux kernel 2.3.33 and above could fail: In include/linux/lvm.h please change the #include against #include This issue has been solved with the LVM 2.3.40 kernel patch. 2. vgcreate segfault Please try replacing the end of tools/lib/lvm_tab_vg_check_exist_all_vg.c starting from line 94 by: if ( ret < 0 || size < 2) { if ( data != NULL) { free ( data); data = NULL; } if ( vg_name_ptr != NULL) free ( vg_name_ptr); else if ( vg_name_ptr_sav != NULL) free ( vg_name_ptr_sav); } return vg_name_ptr; } When you run out of space for the / file system (could happen during SuSE 6.3 installation) the /etc/lvmtab is invalidated (empty). This may cause a subsequent kernel Oops. As a workaround on SuSE 6.3, remove the /etc/lvmconf directory contents during installation after creating at most 2 lvols or use command line specifying the -An option to vgcreate and lvcreate to skip creation of a backup copy on the RAM disk. 3. Compile with kernel 2.2.13 or 2.2.14 fails: > drivers/block/block.a(ll_rw_blk.o): In function `blk_dev_init': > ll_rw_blk.o(.text.init+0xb0): undefined reference to `lvm_init' Terry Hardie (terryh@orcas.net) notes: > Actually, on line 362 of lvm.c in your kernel source, block/drivers, > change the word "static" to "extern". The problem doesn't show up if > you're compiling LVM as a module. The line in question is: __initfunc(static int lvm_init(void)) This should be changed to: __initfunc(extern int lvm_init(void)) 4. Compile with kernel 2.3.40 fails: > ksyms.c:258: `block_fsync' undeclared here (not in a function) > ksyms.c:258: initializer element for `__ksymtab_block_fsync.value' is not constant > ksyms.c:269: `blkdev_close' undeclared here (not in a function) > ksyms.c:269: initializer element for `__ksymtab_blkdev_close.value' is not constant Jan-Benedict Glaw recommends the following fix: - edit ./include/linux/fs.h - locate line 775 - add the following two lines: extern int blkdev_close(struct inode *, struct file *); extern int block_fsync(struct file *, struct dentry *);