Actually there are still some pieces missing which i need for LVM. File Reason ---------------------------- ----------------------------------------- drivers/block/Config.in enable LVM choice drivers/block/ll_rw_blk.c initialization of LVM drivers/block/lvm.c type correction for static LVM driver fs/block_dev.c type corrections for static LVM driver fs/partitions/check.c /proc/partitions LVM support include/linux/fs.h missing definitions kernel/ksyms.c missing exported symbols I attached these missing pieces vs. 2.3.99-pre3 below. Please include them. Regards, Heinz --- linux-2.3.99-pre3.orig/drivers/block/Config.in Tue Apr 4 23:12:54 2000 +++ linux-2.3.99-pre3/drivers/block/Config.in Tue Apr 4 23:12:54 2000 @@ -47,6 +47,10 @@ if [ "$CONFIG_NET" = "y" ]; then tristate 'Network block device support' CONFIG_BLK_DEV_NBD fi +tristate 'Logical volume manager (LVM) support' CONFIG_BLK_DEV_LVM N +if [ "$CONFIG_BLK_DEV_LVM" != "n" ]; then + bool ' LVM information in proc filesystem' CONFIG_LVM_PROC_FS Y +fi bool 'Multiple devices driver support' CONFIG_BLK_DEV_MD if [ "$CONFIG_BLK_DEV_MD" = "y" ]; then tristate ' Linear (append) mode' CONFIG_MD_LINEAR --- linux-2.3.99-pre3.orig/drivers/block/ll_rw_blk.c Tue Apr 4 23:12:55 2000 +++ linux-2.3.99-pre3/drivers/block/ll_rw_blk.c Tue Apr 4 23:12:55 2000 @@ -1073,6 +1073,9 @@ #ifdef CONFIG_BLK_DEV_NBD nbd_init(); #endif +#ifdef CONFIG_BLK_DEV_LVM + lvm_init(); +#endif return 0; }; --- linux-2.3.99-pre3.orig/drivers/block/lvm.c Tue Apr 4 23:12:55 2000 +++ linux-2.3.99-pre3/drivers/block/lvm.c Tue Apr 4 23:12:55 2000 @@ -287,7 +287,7 @@ static char pv_name[NAME_LEN]; /* static char rootvg[NAME_LEN] = { 0, }; */ static uint lv_open = 0; -static const char *const lvm_name = LVM_NAME; +const char *const lvm_name = LVM_NAME; static int lock = 0; static int loadtime = 0; static uint vg_count = 0; @@ -931,7 +931,7 @@ printk(KERN_DEBUG "%s -- lvm_blk_ioctl -- BLKRAGET\n", lvm_name); #endif - if (put_user(lv->lv_read_ahead, (long *)arg)) + if (put_user(lv_ptr->lv_read_ahead, (long *)arg)) return -EFAULT; break; --- linux-2.3.99-pre3.orig/fs/block_dev.c Tue Apr 4 23:12:55 2000 +++ linux-2.3.99-pre3/fs/block_dev.c Tue Apr 4 23:12:55 2000 @@ -313,7 +313,7 @@ * since the vma has no handle. */ -static int block_fsync(struct file *filp, struct dentry *dentry) +int block_fsync(struct file *filp, struct dentry *dentry) { return fsync_dev(dentry->d_inode->i_rdev); } @@ -650,7 +650,7 @@ return ret; } -static int blkdev_close(struct inode * inode, struct file * filp) +int blkdev_close(struct inode * inode, struct file * filp) { return blkdev_put(inode->i_bdev, BDEV_FILE); } --- linux-2.3.99-pre3.orig/fs/partitions/check.c Tue Apr 4 23:12:55 2000 +++ linux-2.3.99-pre3/fs/partitions/check.c Tue Apr 4 23:12:55 2000 @@ -71,6 +71,11 @@ NULL }; +#if defined CONFIG_BLK_DEV_LVM || defined CONFIG_BLK_DEV_LVM_MODULE +#include +void (*lvm_hd_name_ptr) (char *, int) = NULL; +#endif + /* * disk_name() is used by genhd.c and blkpg.c. * It formats the devicename of the indicated disk into @@ -97,6 +102,13 @@ * This requires special handling here. */ switch (hd->major) { +#if defined CONFIG_BLK_DEV_LVM || defined CONFIG_BLK_DEV_LVM_MODULE + case LVM_BLK_MAJOR: + *buf = 0; + if ( lvm_hd_name_ptr != NULL) + (lvm_hd_name_ptr) ( buf, minor); + return buf; +#endif case IDE9_MAJOR: unit += 2; case IDE8_MAJOR: --- linux-2.3.99-pre3.orig/include/linux/fs.h Tue Apr 4 23:12:56 2000 +++ linux-2.3.99-pre3/include/linux/fs.h Tue Apr 4 23:12:56 2000 @@ -827,6 +827,7 @@ extern struct block_device *bdget(dev_t); extern void bdput(struct block_device *); extern int blkdev_open(struct inode *, struct file *); +extern int blkdev_close(struct inode * inode, struct file * filp); extern struct file_operations def_blk_fops; extern struct file_operations def_fifo_fops; extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long); @@ -1043,6 +1044,7 @@ /* Generic buffer handling for block filesystems.. */ extern int block_flushpage(struct page *, unsigned long); +extern int block_fsync(struct file *filp, struct dentry *dentry); extern int block_symlink(struct inode *, const char *, int); extern int block_write_full_page(struct page*, get_block_t*); extern int block_read_full_page(struct page*, get_block_t*); --- linux-2.3.99-pre3.orig/kernel/ksyms.c Tue Apr 4 23:12:56 2000 +++ linux-2.3.99-pre3/kernel/ksyms.c Tue Apr 4 23:12:56 2000 @@ -52,6 +52,11 @@ #include #endif +#ifdef CONFIG_BLK_DEV_LVM_MODULE +extern void (*lvm_hd_name_ptr) ( char*, int); +EXPORT_SYMBOL(lvm_hd_name_ptr); +#endif + extern int console_loglevel; extern void set_device_ro(kdev_t dev,int flag); #if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE) @@ -234,6 +239,7 @@ EXPORT_SYMBOL(page_readlink); EXPORT_SYMBOL(page_follow_link); EXPORT_SYMBOL(page_symlink_inode_operations); +EXPORT_SYMBOL(block_fsync); EXPORT_SYMBOL(block_symlink); EXPORT_SYMBOL(vfs_readdir); @@ -271,6 +277,7 @@ EXPORT_SYMBOL(sync_dev); EXPORT_SYMBOL(devfs_register_partitions); EXPORT_SYMBOL(blkdev_open); +EXPORT_SYMBOL(blkdev_close); EXPORT_SYMBOL(blkdev_get); EXPORT_SYMBOL(blkdev_put); EXPORT_SYMBOL(ioctl_by_bdev); -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Systemmanagement TS T-Nova Entwicklungszentrum Darmstadt Heinz Mauelshagen Otto-Roehm-Strasse 71c Senior Systems Engineer Postfach 10 05 41 64205 Darmstadt mge@EZ-Darmstadt.Telekom.de Germany +49 6151 886-425 FAX-386 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/