diff options
-rw-r--r-- | include/linux/mm.h | 1 | ||||
-rw-r--r-- | mm/page-writeback.c | 10 | ||||
-rw-r--r-- | mm/shmem.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 26adfcc0d61a..77a76101dcd9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -785,6 +785,7 @@ extern int try_to_release_page(struct page * page, gfp_t gfp_mask); | |||
785 | extern void do_invalidatepage(struct page *page, unsigned long offset); | 785 | extern void do_invalidatepage(struct page *page, unsigned long offset); |
786 | 786 | ||
787 | int __set_page_dirty_nobuffers(struct page *page); | 787 | int __set_page_dirty_nobuffers(struct page *page); |
788 | int __set_page_dirty_no_writeback(struct page *page); | ||
788 | int redirty_page_for_writepage(struct writeback_control *wbc, | 789 | int redirty_page_for_writepage(struct writeback_control *wbc, |
789 | struct page *page); | 790 | struct page *page); |
790 | int FASTCALL(set_page_dirty(struct page *page)); | 791 | int FASTCALL(set_page_dirty(struct page *page)); |
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index be0efbde4994..438833cbbca4 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -737,6 +737,16 @@ int write_one_page(struct page *page, int wait) | |||
737 | EXPORT_SYMBOL(write_one_page); | 737 | EXPORT_SYMBOL(write_one_page); |
738 | 738 | ||
739 | /* | 739 | /* |
740 | * For address_spaces which do not use buffers nor write back. | ||
741 | */ | ||
742 | int __set_page_dirty_no_writeback(struct page *page) | ||
743 | { | ||
744 | if (!PageDirty(page)) | ||
745 | SetPageDirty(page); | ||
746 | return 0; | ||
747 | } | ||
748 | |||
749 | /* | ||
740 | * For address_spaces which do not use buffers. Just tag the page as dirty in | 750 | * For address_spaces which do not use buffers. Just tag the page as dirty in |
741 | * its radix tree. | 751 | * its radix tree. |
742 | * | 752 | * |
diff --git a/mm/shmem.c b/mm/shmem.c index 70da7a0981bf..b38e17169271 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -2316,7 +2316,7 @@ static void destroy_inodecache(void) | |||
2316 | 2316 | ||
2317 | static const struct address_space_operations shmem_aops = { | 2317 | static const struct address_space_operations shmem_aops = { |
2318 | .writepage = shmem_writepage, | 2318 | .writepage = shmem_writepage, |
2319 | .set_page_dirty = __set_page_dirty_nobuffers, | 2319 | .set_page_dirty = __set_page_dirty_no_writeback, |
2320 | #ifdef CONFIG_TMPFS | 2320 | #ifdef CONFIG_TMPFS |
2321 | .prepare_write = shmem_prepare_write, | 2321 | .prepare_write = shmem_prepare_write, |
2322 | .commit_write = simple_commit_write, | 2322 | .commit_write = simple_commit_write, |