Move the tiny I/O size protection code from limit_rala() to
state_based_readahead().

limit_rala() is also called by context based readahead, which has its own
minimal readahead size.

Signed-off-by: Fengguang Wu <[EMAIL PROTECTED]>
---
 mm/readahead.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

--- linux-2.6.21-rc3-mm2.orig/mm/readahead.c
+++ linux-2.6.21-rc3-mm2/mm/readahead.c
@@ -1031,13 +1031,6 @@ static void limit_rala(unsigned long ra_
        unsigned long stream_shift;
 
        /*
-        * Protect against too small I/O sizes,
-        * by mapping [0, 4*min] to [min, 4*min].
-        */
-       if (*ra_size < 4 * MIN_RA_PAGES)
-               *ra_size = MIN_RA_PAGES + *ra_size * 3 / 4;
-
-       /*
         * Apply basic upper limits.
         */
        if (*ra_size > ra_max)
@@ -1145,6 +1138,13 @@ state_based_readahead(struct address_spa
        if (!adjust_rala(&ra_size, &la_size))
                goto cancel_lookahead;
 
+       /*
+        * Protect against too small I/O sizes,
+        * by mapping [0, 4*min] to [min, 4*min].
+        */
+       if (ra_size < 4 * MIN_RA_PAGES)
+               ra_size = MIN_RA_PAGES + ra_size * 3 / 4;
+
        growth_limit = req_size;
        growth_limit += ra_max / 16;
        growth_limit += 2 * ra_old;

--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to