mm/readahead.c: inline ra_submit
Commit f9acc8c7b3
("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: Fabian Frederick <fabf@skynet.be>
Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
55f67141a8
commit
29f175d125
@@ -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 @@
|
|||||||
#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)
|
|||||||
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 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#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 @@
|
|||||||
#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 @@ out:
|
|||||||
*
|
*
|
||||||
* 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)
|
|||||||
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
|
||||||
|
Reference in New Issue
Block a user