Looks good to me, thanks!

Reviewed-by: Fengguang Wu <fengguang...@intel.com>

On Sun, Oct 28, 2018 at 02:13:26PM +0800, Gao Xiang wrote:
It's a trivial simplification for get_next_ra_size and
clear enough for humans to understand.

It also fixes potential overflow if ra->size(< ra_pages) is too large.

Cc: Fengguang Wu <fengguang...@intel.com>
Signed-off-by: Gao Xiang <hsiang...@aol.com>
---
mm/readahead.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/mm/readahead.c b/mm/readahead.c
index 4e63014..205ac34 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -272,17 +272,15 @@ static unsigned long get_init_ra_size(unsigned long size, 
unsigned long max)
 *  return it as the new window size.
 */
static unsigned long get_next_ra_size(struct file_ra_state *ra,
-                                               unsigned long max)
+                                     unsigned long max)
{
        unsigned long cur = ra->size;
-       unsigned long newsize;

        if (cur < max / 16)
-               newsize = 4 * cur;
-       else
-               newsize = 2 * cur;
-
-       return min(newsize, max);
+               return 4 * cur;
+       if (cur <= max / 2)
+               return 2 * cur;
+       return max;
}

/*
--
2.7.4

Reply via email to