diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-03-18 13:16:30 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-03-18 13:16:30 +1100 |
commit | c71327ad9f925a4ddbf24db80ce66165104c4ed0 (patch) | |
tree | a1560ddfb827d580843d2a32ba19fb0fc85490d8 /fs/ramfs/file-nommu.c | |
parent | f507cd22035fdadd5dbb476dd05e9e7ee21c3b84 (diff) | |
parent | a4bd6a93c3f14691c8a29e53eb04dc734b27f0db (diff) |
Merge commit 'gcl/merge' into merge
Diffstat (limited to 'fs/ramfs/file-nommu.c')
-rw-r--r-- | fs/ramfs/file-nommu.c | 4 |
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); |