diff -urp linux-2.4.9-31-RH-xfs-1.1-newdelalloc/drivers/md/lvm-snap.c linux-2.4.9-31-RH-xfs-1.1/drivers/md/lvm-snap.c --- linux-2.4.9-31-RH-xfs-1.1-newdelalloc/drivers/md/lvm-snap.c Tue Mar 19 11:59:48 2002 +++ linux-2.4.9-31-RH-xfs-1.1/drivers/md/lvm-snap.c Fri Mar 22 10:15:22 2002 @@ -540,9 +540,10 @@ out: int lvm_snapshot_alloc(lv_t * lv_snap) { int ret, max_sectors; + int nbhs = KIO_MAX_SECTORS; /* allocate kiovec to do chunk io */ - ret = alloc_kiovec(1, &lv_snap->lv_iobuf); + ret = alloc_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs); if (ret) goto out; max_sectors = KIO_MAX_SECTORS << (PAGE_SHIFT-9); @@ -551,7 +552,7 @@ int lvm_snapshot_alloc(lv_t * lv_snap) if (ret) goto out_free_kiovec; /* allocate kiovec to do exception table io */ - ret = alloc_kiovec(1, &lv_snap->lv_COW_table_iobuf); + ret = alloc_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs); if (ret) goto out_free_kiovec; ret = lvm_snapshot_alloc_iobuf_pages(lv_snap->lv_COW_table_iobuf, @@ -566,12 +567,12 @@ out: out_free_both_kiovecs: unmap_kiobuf(lv_snap->lv_COW_table_iobuf); - free_kiovec(1, &lv_snap->lv_COW_table_iobuf); + free_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs); lv_snap->lv_COW_table_iobuf = NULL; out_free_kiovec: unmap_kiobuf(lv_snap->lv_iobuf); - free_kiovec(1, &lv_snap->lv_iobuf); + free_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs); lv_snap->lv_iobuf = NULL; vfree(lv_snap->lv_snapshot_hash_table); lv_snap->lv_snapshot_hash_table = NULL; @@ -580,6 +581,8 @@ out_free_kiovec: void lvm_snapshot_release(lv_t * lv) { + int nbhs = KIO_MAX_SECTORS; + if (lv->lv_block_exception) { vfree(lv->lv_block_exception); @@ -595,14 +598,14 @@ void lvm_snapshot_release(lv_t * lv) { kiobuf_wait_for_io(lv->lv_iobuf); unmap_kiobuf(lv->lv_iobuf); - free_kiovec(1, &lv->lv_iobuf); + free_kiovec_sz(1, &lv->lv_iobuf, &nbhs); lv->lv_iobuf = NULL; } if (lv->lv_COW_table_iobuf) { kiobuf_wait_for_io(lv->lv_COW_table_iobuf); unmap_kiobuf(lv->lv_COW_table_iobuf); - free_kiovec(1, &lv->lv_COW_table_iobuf); + free_kiovec_sz(1, &lv->lv_COW_table_iobuf, &nbhs); lv->lv_COW_table_iobuf = NULL; } } diff -urp linux-2.4.9-31-RH-xfs-1.1-newdelalloc/drivers/md/lvm.c linux-2.4.9-31-RH-xfs-1.1/drivers/md/lvm.c --- linux-2.4.9-31-RH-xfs-1.1-newdelalloc/drivers/md/lvm.c Tue Mar 19 11:59:48 2002 +++ linux-2.4.9-31-RH-xfs-1.1/drivers/md/lvm.c Fri Mar 22 10:25:22 2002 @@ -401,7 +400,6 @@ struct file_operations lvm_chr_fops = { /* block device operations structure needed for 2.3.38? and above */ struct block_device_operations lvm_blk_dops = { - owner: THIS_MODULE, open: lvm_blk_open, release: lvm_blk_close, ioctl: lvm_blk_ioctl, --- linux-2.4.9-31-RH-xfs-1.1-newdelalloc/include/linux/lvm.h Tue Mar 19 13:47:47 2002 +++ linux-2.4.9-31-RH-xfs-1.1/include/linux/lvm.h Fri Mar 22 10:25:13 2002 @@ -92,6 +92,9 @@ /* if you like emergency reset code in the driver */ #define LVM_TOTAL_RESET +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) > (b) ? (a) : (b)) + #ifdef __KERNEL__ #undef LVM_HD_NAME /* display nice names in /proc/partitions */