Commit 29f175d1 authored by Fabian Frederick's avatar Fabian Frederick Committed by Linus Torvalds

mm/readahead.c: inline ra_submit

Commit f9acc8c7 ("readahead: sanify file_ra_state names") left
ra_submit with a single function call.

Move ra_submit to internal.h and inline it to save some stack.  Thanks
to Andrew Morton for commenting different versions.
Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
Suggested-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 55f67141
...@@ -1875,9 +1875,6 @@ void page_cache_async_readahead(struct address_space *mapping, ...@@ -1875,9 +1875,6 @@ void page_cache_async_readahead(struct address_space *mapping,
unsigned long size); unsigned long size);
unsigned long max_sane_readahead(unsigned long nr); unsigned long max_sane_readahead(unsigned long nr);
unsigned long ra_submit(struct file_ra_state *ra,
struct address_space *mapping,
struct file *filp);
/* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */ /* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */
extern int expand_stack(struct vm_area_struct *vma, unsigned long address); extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#ifndef __MM_INTERNAL_H #ifndef __MM_INTERNAL_H
#define __MM_INTERNAL_H #define __MM_INTERNAL_H
#include <linux/fs.h>
#include <linux/mm.h> #include <linux/mm.h>
void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma, void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
...@@ -21,6 +22,20 @@ static inline void set_page_count(struct page *page, int v) ...@@ -21,6 +22,20 @@ static inline void set_page_count(struct page *page, int v)
atomic_set(&page->_count, v); atomic_set(&page->_count, v);
} }
extern int __do_page_cache_readahead(struct address_space *mapping,
struct file *filp, pgoff_t offset, unsigned long nr_to_read,
unsigned long lookahead_size);
/*
* Submit IO for the read-ahead request in file_ra_state.
*/
static inline unsigned long ra_submit(struct file_ra_state *ra,
struct address_space *mapping, struct file *filp)
{
return __do_page_cache_readahead(mapping, filp,
ra->start, ra->size, ra->async_size);
}
/* /*
* Turn a non-refcounted page (->_count == 0) into refcounted with * Turn a non-refcounted page (->_count == 0) into refcounted with
* a count of one. * a count of one.
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#include <linux/mm.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/backing-dev.h> #include <linux/backing-dev.h>
...@@ -20,6 +18,8 @@ ...@@ -20,6 +18,8 @@
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/file.h> #include <linux/file.h>
#include "internal.h"
/* /*
* Initialise a struct file's readahead state. Assumes that the caller has * Initialise a struct file's readahead state. Assumes that the caller has
* memset *ra to zero. * memset *ra to zero.
...@@ -149,8 +149,7 @@ static int read_pages(struct address_space *mapping, struct file *filp, ...@@ -149,8 +149,7 @@ static int read_pages(struct address_space *mapping, struct file *filp,
* *
* Returns the number of pages requested, or the maximum amount of I/O allowed. * Returns the number of pages requested, or the maximum amount of I/O allowed.
*/ */
static int int __do_page_cache_readahead(struct address_space *mapping, struct file *filp,
__do_page_cache_readahead(struct address_space *mapping, struct file *filp,
pgoff_t offset, unsigned long nr_to_read, pgoff_t offset, unsigned long nr_to_read,
unsigned long lookahead_size) unsigned long lookahead_size)
{ {
...@@ -243,20 +242,6 @@ unsigned long max_sane_readahead(unsigned long nr) ...@@ -243,20 +242,6 @@ unsigned long max_sane_readahead(unsigned long nr)
return min(nr, MAX_READAHEAD); return min(nr, MAX_READAHEAD);
} }
/*
* Submit IO for the read-ahead request in file_ra_state.
*/
unsigned long ra_submit(struct file_ra_state *ra,
struct address_space *mapping, struct file *filp)
{
int actual;
actual = __do_page_cache_readahead(mapping, filp,
ra->start, ra->size, ra->async_size);
return actual;
}
/* /*
* Set the initial window size, round to next power of 2 and square * Set the initial window size, round to next power of 2 and square
* for small size, x 4 for medium, and x 2 for large * for small size, x 4 for medium, and x 2 for large
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment