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 <linux/lvm.h>
+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 <linux/kmod.h>
#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/
This archive was generated by hypermail 2b29 : Fri Apr 07 2000 - 21:00:13 EST