--- linux-2.6.13-ck5/fs/reiser4/wander.c.old 2005-10-30 22:38:00.771463160 -0500 +++ linux-2.6.13-ck5/fs/reiser4/wander.c 2005-10-30 22:37:47.952411952 -0500 @@ -763,9 +763,10 @@ nr, (unsigned long long)block); max_blocks = - bdev_get_queue(super->s_bdev)->max_sectors >> (super-> - s_blocksize_bits - - 9); + min(BIO_MAX_PAGES, + bdev_get_queue(super->s_bdev)->max_sectors >> (super-> + s_blocksize_bits - + 9)); while (nr > 0) { struct bio *bio; @@ -1235,9 +1236,10 @@ block = *block_p; max_blocks = - bdev_get_queue(super->s_bdev)->max_sectors >> (super-> - s_blocksize_bits - - 9); + min(BIO_MAX_PAGES, + bdev_get_queue(super->s_bdev)->max_sectors >> (super-> + s_blocksize_bits - + 9)); while (nr > 0) { struct bio *bio;