gcc-2.95.3 is failing with CONFIG_LBD=1.  Reorganising the code a bit made it
go away.



 md/linear.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff -puN drivers/md/linear.c~linear-gcc-workaround drivers/md/linear.c
--- 25/drivers/md/linear.c~linear-gcc-workaround	2003-02-14 02:18:58.000000000 -0800
+++ 25-akpm/drivers/md/linear.c	2003-02-14 02:18:58.000000000 -0800
@@ -110,9 +110,18 @@ static int linear_run (mddev_t *mddev)
 		goto out;
 	}
 
+	/*
+	 * This code was restructured to work around a gcc-2.95.3 internal
+	 * compiler error.  Alter it with care.
+	 */
 	{
-		sector_t sz = md_size[mdidx(mddev)];
-		unsigned round = sector_div(sz, conf->smallest->size);
+		sector_t sz;
+		unsigned round;
+		unsigned long base;
+
+		sz = md_size[mdidx(mddev)];
+		base = conf->smallest->size;
+		round = sector_div(sz, base);
 		nb_zone = conf->nr_zones = sz + (round ? 1 : 0);
 	}
 			

_