in fs/block_dev.c block_read() function (in 2.2 and 2.4 series) rblocks = blocks = (left + offset + blocksize - 1) >> blocksize_bits; bhb = bhe = buflist; if (filp->f_reada) { if (blocks < read_ahead[MAJOR(dev)] / (blocksize >> 9)) blocks = read_ahead[MAJOR(dev)] / (blocksize >> 9); if (rblocks > blocks) blocks = rblocks; The second test is false in all case and there's no concequences because the rblocks variable is never used. So I've joined a patch (ok for 2.2.17 and 2.4.2) to remove rblocks. Christophe -- Christophe Barbé Software Engineer Lineo High Availability Group 42-46, rue Médéric 92110 Clichy - France phone (33).1.41.40.02.12 fax (33).1.41.40.02.01 www.lineo.com