X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=mm%2Freadahead.c;h=b771c4ba92a9a84f9f7c481a92ac27dcb514b236;hp=867f9dd82dcde9d5c11f49bde159c3c6a0276c4e;hb=4cecd7e369e1b252db1d64451462221b362eed1c;hpb=204d1641d200709c759d8c269458cbc7de378c40 diff --git a/mm/readahead.c b/mm/readahead.c index 867f9dd82dcd..b771c4ba92a9 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include #include @@ -399,6 +399,7 @@ ondemand_readahead(struct address_space *mapping, unsigned long req_size) { unsigned long max = max_sane_readahead(ra->ra_pages); + pgoff_t prev_offset; /* * start of file @@ -450,8 +451,11 @@ ondemand_readahead(struct address_space *mapping, /* * sequential cache miss + * trivial case: (offset - prev_offset) == 1 + * unaligned reads: (offset - prev_offset) == 0 */ - if (offset - (ra->prev_pos >> PAGE_CACHE_SHIFT) <= 1UL) + prev_offset = (unsigned long long)ra->prev_pos >> PAGE_CACHE_SHIFT; + if (offset - prev_offset <= 1UL) goto initial_readahead; /*