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) _