Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 115848
b: refs/heads/master
c: ba9ddf4
h: refs/heads/master
v: v3
  • Loading branch information
Lee Schermerhorn authored and Linus Torvalds committed Oct 20, 2008
1 parent ffe96aa commit dc2b120
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7b854121eb3e5ba0241882ff939e2c485228c9c5
refs/heads/master: ba9ddf49391645e6bb93219131a40446538a5e76
1 change: 1 addition & 0 deletions trunk/fs/ramfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ struct inode *ramfs_get_inode(struct super_block *sb, int mode, dev_t dev)
inode->i_mapping->a_ops = &ramfs_aops;
inode->i_mapping->backing_dev_info = &ramfs_backing_dev_info;
mapping_set_gfp_mask(inode->i_mapping, GFP_HIGHUSER);
mapping_set_unevictable(inode->i_mapping);
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
switch (mode & S_IFMT) {
default:
Expand Down
22 changes: 22 additions & 0 deletions trunk/include/linux/pagemap.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,28 @@ static inline void mapping_set_error(struct address_space *mapping, int error)
}
}

#ifdef CONFIG_UNEVICTABLE_LRU
#define AS_UNEVICTABLE (__GFP_BITS_SHIFT + 2) /* e.g., ramdisk, SHM_LOCK */

static inline void mapping_set_unevictable(struct address_space *mapping)
{
set_bit(AS_UNEVICTABLE, &mapping->flags);
}

static inline int mapping_unevictable(struct address_space *mapping)
{
if (mapping && (mapping->flags & AS_UNEVICTABLE))
return 1;
return 0;
}
#else
static inline void mapping_set_unevictable(struct address_space *mapping) { }
static inline int mapping_unevictable(struct address_space *mapping)
{
return 0;
}
#endif

static inline gfp_t mapping_gfp_mask(struct address_space * mapping)
{
return (__force gfp_t)mapping->flags & __GFP_BITS_MASK;
Expand Down
5 changes: 5 additions & 0 deletions trunk/mm/vmscan.c
Original file line number Diff line number Diff line change
Expand Up @@ -2332,11 +2332,16 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
* lists vs unevictable list.
*
* Reasons page might not be evictable:
* (1) page's mapping marked unevictable
*
* TODO - later patches
*/
int page_evictable(struct page *page, struct vm_area_struct *vma)
{

if (mapping_unevictable(page_mapping(page)))
return 0;

/* TODO: test page [!]evictable conditions */

return 1;
Expand Down

0 comments on commit dc2b120

Please sign in to comment.