aboutsummaryrefslogtreecommitdiff
path: root/fs/ramfs
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-18 09:57:02 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-18 09:57:02 +0100
commit37ba317c9ed19eb126e40bbf563f2711e191a636 (patch)
treec5865768f341fc0ab41899fe9af9dc5918784cee /fs/ramfs
parent708dc5125309cd33c5daaad3026cc4ae6ef39c8b (diff)
parentee568b25ee9e160b32d1aef73d8b2ee9c05d34db (diff)
Merge branches 'sched/cleanups' and 'linus' into sched/core
Diffstat (limited to 'fs/ramfs')
-rw-r--r--fs/ramfs/file-nommu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c
index b9b567a2837..5d7c7ececa6 100644
--- a/fs/ramfs/file-nommu.c
+++ b/fs/ramfs/file-nommu.c
@@ -114,6 +114,9 @@ int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
if (!pagevec_add(&lru_pvec, page))
__pagevec_lru_add_file(&lru_pvec);
+ /* prevent the page from being discarded on memory pressure */
+ SetPageDirty(page);
+
unlock_page(page);
}
@@ -126,6 +129,7 @@ int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
return -EFBIG;
add_error:
+ pagevec_lru_add_file(&lru_pvec);
page_cache_release(pages + loop);
for (loop++; loop < npages; loop++)
__free_page(pages + loop);