It gets a link error with CONFIG_LBD=y


 drivers/block/as-iosched.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff -puN drivers/block/as-iosched.c~as-div64-fix drivers/block/as-iosched.c
--- 25/drivers/block/as-iosched.c~as-div64-fix	2003-05-05 22:59:40.000000000 -0700
+++ 25-akpm/drivers/block/as-iosched.c	2003-05-05 23:02:50.000000000 -0700
@@ -89,9 +89,9 @@ struct as_io_context {
 	unsigned long dir_after_read[2];
 	int mean_dir_after_read;
 	/* Layout pattern */
+	long seek_samples;
 	sector_t last_request_pos;
 	sector_t seek_total;
-	sector_t seek_samples;
 	sector_t seek_mean;
 };
 
@@ -850,9 +850,10 @@ static void as_update_iohist(struct as_i
 			
 			aic->seek_samples += 256;
 			aic->seek_total += 256*seek_dist;
-			if (aic->seek_samples)
-				aic->seek_mean = (aic->seek_total + 128)
-							/ aic->seek_samples;
+			if (aic->seek_samples) {
+				aic->seek_mean = aic->seek_total + 128;
+				do_div(aic->seek_mean, aic->seek_samples);
+			}
 			aic->seek_samples = (aic->seek_samples>>1)
 						+ (aic->seek_samples>>2);
 			aic->seek_total = (aic->seek_total>>1)

_