All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9
@ 2001-08-16 21:40 James Pattinson
  2001-08-17  9:28 ` Joe Thornber
  2001-08-17 10:25 ` Joe Thornber
  0 siblings, 2 replies; 4+ messages in thread
From: James Pattinson @ 2001-08-16 21:40 UTC (permalink / raw)
  To: linux-lvm

Hi!

Another day, another kernel to compile! But after applying LVM 1.0 to
2.4.9 this evening, I found it didn't compile. It's to do with a mismatch
between the max and min macros in the kernel and in LVM. Here's a patch to
make things work:

diff -u --recursive 1.0.clean/kernel/lvm-snap.c 1.0/kernel/lvm-snap.c
--- 1.0.clean/kernel/lvm-snap.c	Wed Jun 27 13:03:09 2001
+++ 1.0/kernel/lvm-snap.c	Thu Aug 16 22:30:07 2001
@@ -373,8 +373,8 @@

 	blksize_org = lvm_get_blksize(org_phys_dev);
 	blksize_snap = lvm_get_blksize(snap_phys_dev);
-	max_blksize = max(blksize_org, blksize_snap);
-	min_blksize = min(blksize_org, blksize_snap);
+	max_blksize = max(int, blksize_org, blksize_snap);
+	min_blksize = min(int, blksize_org, blksize_snap);
 	max_sectors = KIO_MAX_SECTORS * (min_blksize>>9);

 	if (chunk_size % (max_blksize>>9))
@@ -382,7 +382,7 @@

 	while (chunk_size)
 	{
-		nr_sectors = min(chunk_size, max_sectors);
+		nr_sectors = min(int, chunk_size, max_sectors);
 		chunk_size -= nr_sectors;

 		iobuf->length = nr_sectors << 9;
@@ -508,7 +508,7 @@

 	buckets = lv->lv_remap_end;
 	max_buckets = calc_max_buckets();
-	buckets = min(buckets, max_buckets);
+	buckets = min(int, buckets, max_buckets);
 	while (buckets & (buckets-1))
 		buckets &= (buckets-1);

diff -u --recursive 1.0.clean/kernel/lvm.c 1.0/kernel/lvm.c
--- 1.0.clean/kernel/lvm.c	Fri Jul 13 12:40:42 2001
+++ 1.0/kernel/lvm.c	Thu Aug 16 22:30:23 2001
@@ -2452,7 +2452,7 @@

 	/* save availiable i/o statistic data */
 	if (old_lv->lv_stripes < 2) {	/* linear logical volume */
-		end = min(old_lv->lv_current_le, new_lv->lv_current_le);
+		end = min(int, old_lv->lv_current_le, new_lv->lv_current_le);
 		for (l = 0; l < end; l++) {
 			new_lv->lv_current_pe[l].reads +=
 				old_lv->lv_current_pe[l].reads;
@@ -2466,7 +2466,7 @@

 		old_stripe_size = old_lv->lv_allocated_le / old_lv->lv_stripes;
 		new_stripe_size = new_lv->lv_allocated_le / new_lv->lv_stripes;
-		end = min(old_stripe_size, new_stripe_size);
+		end = min(int, old_stripe_size, new_stripe_size);

 		for (i = source = dest = 0; i < new_lv->lv_stripes; i++) {
 			for (j = 0; j < end; j++) {

Have fun!

James

PS I aint no kernel hacker, use@your own risk but it works for me :)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9
  2001-08-16 21:40 [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9 James Pattinson
@ 2001-08-17  9:28 ` Joe Thornber
  2001-08-17 10:25 ` Joe Thornber
  1 sibling, 0 replies; 4+ messages in thread
From: Joe Thornber @ 2001-08-17  9:28 UTC (permalink / raw)
  To: linux-lvm

On Thu, Aug 16, 2001 at 10:40:52PM +0100, James Pattinson wrote:
> Hi!
> 
> Another day, another kernel to compile! But after applying LVM 1.0 to
> 2.4.9 this evening, I found it didn't compile. It's to do with a mismatch
> between the max and min macros in the kernel and in LVM. Here's a patch to
> make things work:

Thanks, will update cvs.

- Joe

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9
  2001-08-16 21:40 [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9 James Pattinson
  2001-08-17  9:28 ` Joe Thornber
@ 2001-08-17 10:25 ` Joe Thornber
  2001-08-17 12:25   ` Eric Smith
  1 sibling, 1 reply; 4+ messages in thread
From: Joe Thornber @ 2001-08-17 10:25 UTC (permalink / raw)
  To: linux-lvm

On Thu, Aug 16, 2001 at 10:40:52PM +0100, James Pattinson wrote:
> Hi!
> 
> Another day, another kernel to compile! But after applying LVM 1.0 to
> 2.4.9 this evening, I found it didn't compile. It's to do with a mismatch
> between the max and min macros in the kernel and in LVM. Here's a patch to
> make things work:

This is what I've checked in, just a few changes to ensure we still work
with older kernels.

- Joe

--- kernel/lvm-internal.h	2001/07/10 13:19:25	1.5
+++ kernel/lvm-internal.h	2001/08/17 10:21:19
@@ -53,6 +53,12 @@
 extern struct block_device_operations lvm_blk_dops;
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 9)
+#undef min
+#undef max
+#define min(type, a, b) (((a) < (b)) ? (a) : (b))
+#define max(type, a, b) (((a) > (b)) ? (a) : (b))
+#endif
 
 /* debug macros */
 #ifdef DEBUG_IOCTL
--- kernel/lvm-snap.c	2001/06/27 12:03:09	1.5
+++ kernel/lvm-snap.c	2001/08/17 10:21:20
@@ -373,8 +373,8 @@
 
 	blksize_org = lvm_get_blksize(org_phys_dev);
 	blksize_snap = lvm_get_blksize(snap_phys_dev);
-	max_blksize = max(blksize_org, blksize_snap);
-	min_blksize = min(blksize_org, blksize_snap);
+	max_blksize = max(int, blksize_org, blksize_snap);
+	min_blksize = min(int, blksize_org, blksize_snap);
 	max_sectors = KIO_MAX_SECTORS * (min_blksize>>9);
 
 	if (chunk_size % (max_blksize>>9))
@@ -382,7 +382,7 @@
 
 	while (chunk_size)
 	{
-		nr_sectors = min(chunk_size, max_sectors);
+		nr_sectors = min(int, chunk_size, max_sectors);
 		chunk_size -= nr_sectors;
 
 		iobuf->length = nr_sectors << 9;
@@ -508,7 +508,7 @@
 
 	buckets = lv->lv_remap_end;
 	max_buckets = calc_max_buckets();
-	buckets = min(buckets, max_buckets);
+	buckets = min(unsigned long, buckets, max_buckets);
 	while (buckets & (buckets-1))
 		buckets &= (buckets-1);
 
--- kernel/lvm.c	2001/07/13 11:40:42	1.39
+++ kernel/lvm.c	2001/08/17 10:21:24
@@ -2452,7 +2452,7 @@
 
 	/* save availiable i/o statistic data */
 	if (old_lv->lv_stripes < 2) {	/* linear logical volume */
-		end = min(old_lv->lv_current_le, new_lv->lv_current_le);
+		end = min(uint, old_lv->lv_current_le, new_lv->lv_current_le);
 		for (l = 0; l < end; l++) {
 			new_lv->lv_current_pe[l].reads +=
 				old_lv->lv_current_pe[l].reads;
@@ -2466,7 +2466,7 @@
 
 		old_stripe_size = old_lv->lv_allocated_le / old_lv->lv_stripes;
 		new_stripe_size = new_lv->lv_allocated_le / new_lv->lv_stripes;
-		end = min(old_stripe_size, new_stripe_size);
+		end = min(uint, old_stripe_size, new_stripe_size);
 
 		for (i = source = dest = 0; i < new_lv->lv_stripes; i++) {
 			for (j = 0; j < end; j++) {

--- kernel/lvm.h	2001/08/16 14:31:45	1.25
+++ kernel/lvm.h	2001/08/17 10:21:25
@@ -165,14 +165,6 @@
 
 #define	LVM_DIR_PREFIX	"/dev/"
 
-#ifndef min
-#define min(a,b) (((a)<(b))?(a):(b))
-#endif
-#ifndef max
-#define max(a,b) (((a)>(b))?(a):(b))
-#endif
-
-
 /*
  * i/o protocol version
  *


--- tools/lib/pv_read_uuidlist.c	2001/04/24 14:29:21	1.4
+++ tools/lib/pv_read_uuidlist.c	2001/08/17 10:21:25
@@ -74,7 +74,10 @@
       goto pv_read_uuidlist_end;
    }
 
-   num = min(pv->pv_uuidlist_on_disk.size, LIST_SIZE);
+   num = pv->pv_uuidlist_on_disk.size;
+   if (LIST_SIZE < num)
+	   num = LIST_SIZE;
+
    if (read(pv_handle, this_pv_uuidlist, num) != num) {
       ret = -LVM_EPV_READ_UUIDLIST_READ;
       goto pv_read_uuidlist_end;

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9
  2001-08-17 10:25 ` Joe Thornber
@ 2001-08-17 12:25   ` Eric Smith
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Smith @ 2001-08-17 12:25 UTC (permalink / raw)
  To: Joe Thornber; +Cc: linux-lvm

Are you sure this patch works?  I applied this to a clean lvm 1.0 and got:

[root@plum 1.0]# patch -p0 < /tmp/lvmpatch
patching file kernel/lvm-internal.h
patching file kernel/lvm-snap.c
Hunk #1 FAILED at 373.
Hunk #2 FAILED at 382.
Hunk #3 FAILED at 508.
3 out of 3 hunks FAILED -- saving rejects to file kernel/lvm-snap.c.rej
patching file kernel/lvm.c
Hunk #1 FAILED at 2452.
Hunk #2 FAILED at 2466.
2 out of 2 hunks FAILED -- saving rejects to file kernel/lvm.c.rej
patching file kernel/lvm.h
Hunk #1 succeeded@165 with fuzz 2.
patching file tools/lib/pv_read_uuidlist.c
[root@plum 1.0]#


????????






On Fri, 17 Aug 2001, Joe Thornber wrote:

> On Thu, Aug 16, 2001 at 10:40:52PM +0100, James Pattinson wrote:
> > Hi!
> >
> > Another day, another kernel to compile! But after applying LVM 1.0 to
> > 2.4.9 this evening, I found it didn't compile. It's to do with a mismatch
> > between the max and min macros in the kernel and in LVM. Here's a patch to
> > make things work:
>
> This is what I've checked in, just a few changes to ensure we still work
> with older kernels.
>
> - Joe
>
> --- kernel/lvm-internal.h	2001/07/10 13:19:25	1.5
> +++ kernel/lvm-internal.h	2001/08/17 10:21:19
> @@ -53,6 +53,12 @@
>  extern struct block_device_operations lvm_blk_dops;
>  #endif
>
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 9)
> +#undef min
> +#undef max
> +#define min(type, a, b) (((a) < (b)) ? (a) : (b))
> +#define max(type, a, b) (((a) > (b)) ? (a) : (b))
> +#endif
>
>  /* debug macros */
>  #ifdef DEBUG_IOCTL
> --- kernel/lvm-snap.c	2001/06/27 12:03:09	1.5
> +++ kernel/lvm-snap.c	2001/08/17 10:21:20
> @@ -373,8 +373,8 @@
>
>  	blksize_org = lvm_get_blksize(org_phys_dev);
>  	blksize_snap = lvm_get_blksize(snap_phys_dev);
> -	max_blksize = max(blksize_org, blksize_snap);
> -	min_blksize = min(blksize_org, blksize_snap);
> +	max_blksize = max(int, blksize_org, blksize_snap);
> +	min_blksize = min(int, blksize_org, blksize_snap);
>  	max_sectors = KIO_MAX_SECTORS * (min_blksize>>9);
>
>  	if (chunk_size % (max_blksize>>9))
> @@ -382,7 +382,7 @@
>
>  	while (chunk_size)
>  	{
> -		nr_sectors = min(chunk_size, max_sectors);
> +		nr_sectors = min(int, chunk_size, max_sectors);
>  		chunk_size -= nr_sectors;
>
>  		iobuf->length = nr_sectors << 9;
> @@ -508,7 +508,7 @@
>
>  	buckets = lv->lv_remap_end;
>  	max_buckets = calc_max_buckets();
> -	buckets = min(buckets, max_buckets);
> +	buckets = min(unsigned long, buckets, max_buckets);
>  	while (buckets & (buckets-1))
>  		buckets &= (buckets-1);
>
> --- kernel/lvm.c	2001/07/13 11:40:42	1.39
> +++ kernel/lvm.c	2001/08/17 10:21:24
> @@ -2452,7 +2452,7 @@
>
>  	/* save availiable i/o statistic data */
>  	if (old_lv->lv_stripes < 2) {	/* linear logical volume */
> -		end = min(old_lv->lv_current_le, new_lv->lv_current_le);
> +		end = min(uint, old_lv->lv_current_le, new_lv->lv_current_le);
>  		for (l = 0; l < end; l++) {
>  			new_lv->lv_current_pe[l].reads +=
>  				old_lv->lv_current_pe[l].reads;
> @@ -2466,7 +2466,7 @@
>
>  		old_stripe_size = old_lv->lv_allocated_le / old_lv->lv_stripes;
>  		new_stripe_size = new_lv->lv_allocated_le / new_lv->lv_stripes;
> -		end = min(old_stripe_size, new_stripe_size);
> +		end = min(uint, old_stripe_size, new_stripe_size);
>
>  		for (i = source = dest = 0; i < new_lv->lv_stripes; i++) {
>  			for (j = 0; j < end; j++) {
>
> --- kernel/lvm.h	2001/08/16 14:31:45	1.25
> +++ kernel/lvm.h	2001/08/17 10:21:25
> @@ -165,14 +165,6 @@
>
>  #define	LVM_DIR_PREFIX	"/dev/"
>
> -#ifndef min
> -#define min(a,b) (((a)<(b))?(a):(b))
> -#endif
> -#ifndef max
> -#define max(a,b) (((a)>(b))?(a):(b))
> -#endif
> -
> -
>  /*
>   * i/o protocol version
>   *
>
>
> --- tools/lib/pv_read_uuidlist.c	2001/04/24 14:29:21	1.4
> +++ tools/lib/pv_read_uuidlist.c	2001/08/17 10:21:25
> @@ -74,7 +74,10 @@
>        goto pv_read_uuidlist_end;
>     }
>
> -   num = min(pv->pv_uuidlist_on_disk.size, LIST_SIZE);
> +   num = pv->pv_uuidlist_on_disk.size;
> +   if (LIST_SIZE < num)
> +	   num = LIST_SIZE;
> +
>     if (read(pv_handle, this_pv_uuidlist, num) != num) {
>        ret = -LVM_EPV_READ_UUIDLIST_READ;
>        goto pv_read_uuidlist_end;
> _______________________________________________
> linux-lvm mailing list
> linux-lvm@sistina.com
> http://lists.sistina.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://www.sistina.com/lvm/Pages/howto.html
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-08-17 12:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-08-16 21:40 [linux-lvm] [PATCH] LVM 1.0 & Linux 2.4.9 James Pattinson
2001-08-17  9:28 ` Joe Thornber
2001-08-17 10:25 ` Joe Thornber
2001-08-17 12:25   ` Eric Smith

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.