|
@@ -1556,6 +1556,8 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
|
|
/* If we don't want any read-ahead, don't bother */
|
|
/* If we don't want any read-ahead, don't bother */
|
|
if (VM_RandomReadHint(vma))
|
|
if (VM_RandomReadHint(vma))
|
|
return;
|
|
return;
|
|
|
|
+ if (!ra->ra_pages)
|
|
|
|
+ return;
|
|
|
|
|
|
if (VM_SequentialReadHint(vma) ||
|
|
if (VM_SequentialReadHint(vma) ||
|
|
offset - 1 == (ra->prev_pos >> PAGE_CACHE_SHIFT)) {
|
|
offset - 1 == (ra->prev_pos >> PAGE_CACHE_SHIFT)) {
|
|
@@ -1578,12 +1580,10 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
|
|
* mmap read-around
|
|
* mmap read-around
|
|
*/
|
|
*/
|
|
ra_pages = max_sane_readahead(ra->ra_pages);
|
|
ra_pages = max_sane_readahead(ra->ra_pages);
|
|
- if (ra_pages) {
|
|
|
|
- ra->start = max_t(long, 0, offset - ra_pages/2);
|
|
|
|
- ra->size = ra_pages;
|
|
|
|
- ra->async_size = 0;
|
|
|
|
- ra_submit(ra, mapping, file);
|
|
|
|
- }
|
|
|
|
|
|
+ ra->start = max_t(long, 0, offset - ra_pages / 2);
|
|
|
|
+ ra->size = ra_pages;
|
|
|
|
+ ra->async_size = 0;
|
|
|
|
+ ra_submit(ra, mapping, file);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|