aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-08 16:03:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-08 16:03:35 -0400
commitf8409abdc592e13cefbe4e4a24a84b3d5741e85f (patch)
treeb016b7158eb080d59bf79605958cb746d545f56d /mm
parentb20dcab9d4589ef9918a13c888c5493945adfc13 (diff)
parentbd9db175dde14b606265e0d37e8319d96fe1a58f (diff)
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o: "Clean ups and miscellaneous bug fixes, in particular for the new collapse_range and zero_range fallocate functions. In addition, improve the scalability of adding and remove inodes from the orphan list" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits) ext4: handle symlink properly with inline_data ext4: fix wrong assert in ext4_mb_normalize_request() ext4: fix zeroing of page during writeback ext4: remove unused local variable "stored" from ext4_readdir(...) ext4: fix ZERO_RANGE test failure in data journalling ext4: reduce contention on s_orphan_lock ext4: use sbi in ext4_orphan_{add|del}() ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged() ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access ext4: remove unnecessary double parentheses ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails ext4: make local functions static ext4: fix block bitmap validation when bigalloc, ^flex_bg ext4: fix block bitmap initialization under sparse_super2 ext4: find the group descriptors on a 1k-block bigalloc,meta_bg filesystem ext4: avoid unneeded lookup when xattr name is invalid ext4: fix data integrity sync in ordered mode ext4: remove obsoleted check ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode ext4: fix locking for O_APPEND writes ...
Diffstat (limited to 'mm')
-rw-r--r--mm/page-writeback.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 7d9a4ef0a078..518e2c3f4c75 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2380,7 +2380,7 @@ int test_clear_page_writeback(struct page *page)
2380 return ret; 2380 return ret;
2381} 2381}
2382 2382
2383int test_set_page_writeback(struct page *page) 2383int __test_set_page_writeback(struct page *page, bool keep_write)
2384{ 2384{
2385 struct address_space *mapping = page_mapping(page); 2385 struct address_space *mapping = page_mapping(page);
2386 int ret; 2386 int ret;
@@ -2405,9 +2405,10 @@ int test_set_page_writeback(struct page *page)
2405 radix_tree_tag_clear(&mapping->page_tree, 2405 radix_tree_tag_clear(&mapping->page_tree,
2406 page_index(page), 2406 page_index(page),
2407 PAGECACHE_TAG_DIRTY); 2407 PAGECACHE_TAG_DIRTY);
2408 radix_tree_tag_clear(&mapping->page_tree, 2408 if (!keep_write)
2409 page_index(page), 2409 radix_tree_tag_clear(&mapping->page_tree,
2410 PAGECACHE_TAG_TOWRITE); 2410 page_index(page),
2411 PAGECACHE_TAG_TOWRITE);
2411 spin_unlock_irqrestore(&mapping->tree_lock, flags); 2412 spin_unlock_irqrestore(&mapping->tree_lock, flags);
2412 } else { 2413 } else {
2413 ret = TestSetPageWriteback(page); 2414 ret = TestSetPageWriteback(page);
@@ -2418,7 +2419,7 @@ int test_set_page_writeback(struct page *page)
2418 return ret; 2419 return ret;
2419 2420
2420} 2421}
2421EXPORT_SYMBOL(test_set_page_writeback); 2422EXPORT_SYMBOL(__test_set_page_writeback);
2422 2423
2423/* 2424/*
2424 * Return true if any of the pages in the mapping are marked with the 2425 * Return true if any of the pages in the mapping are marked with the