readahead: compacting file_ra_state
authorFengguang Wu <wfg@mail.ustc.edu.cn>
Tue, 16 Oct 2007 08:24:31 +0000 (01:24 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 16 Oct 2007 16:42:52 +0000 (09:42 -0700)
Use 'unsigned int' instead of 'unsigned long' for readahead sizes.

This helps reduce memory consumption on 64bit CPU when a lot of files are
opened.

CC: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/fs.h
mm/readahead.c

index 4a6a21077baecb61a04cce0c6b4197d8319ee191..7a998c49a0863bcefd87f7a29fc85b11b5ed4b0e 100644 (file)
@@ -697,12 +697,12 @@ struct fown_struct {
  * Track a single file's readahead state
  */
 struct file_ra_state {
-       pgoff_t start;                  /* where readahead started */
-       unsigned long size;             /* # of readahead pages */
-       unsigned long async_size;       /* do asynchronous readahead when
+       pgoff_t start;                  /* where readahead started */
+       unsigned int size;              /* # of readahead pages */
+       unsigned int async_size;        /* do asynchronous readahead when
                                           there are only # of pages ahead */
 
-       unsigned long ra_pages;         /* Maximum readahead window */
+       unsigned int ra_pages;          /* Maximum readahead window */
        unsigned long mmap_hit;         /* Cache hit stat for mmap accesses */
        unsigned long mmap_miss;        /* Cache miss stat for mmap accesses */
        unsigned long prev_index;       /* Cache last read() position */
index be20c9d699d3111f0f75d346deec70d8878fd54d..d2504877b26929b00db9e2bd4e2afc297a61ecce 100644 (file)
@@ -351,7 +351,7 @@ ondemand_readahead(struct address_space *mapping,
                   bool hit_readahead_marker, pgoff_t offset,
                   unsigned long req_size)
 {
-       unsigned long max;      /* max readahead pages */
+       int max;        /* max readahead pages */
        int sequential;
 
        max = ra->ra_pages;