diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-08 16:03:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-08 16:03:35 -0400 |
commit | f8409abdc592e13cefbe4e4a24a84b3d5741e85f (patch) | |
tree | b016b7158eb080d59bf79605958cb746d545f56d /mm | |
parent | b20dcab9d4589ef9918a13c888c5493945adfc13 (diff) | |
parent | bd9db175dde14b606265e0d37e8319d96fe1a58f (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.c | 11 |
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 | ||
2383 | int test_set_page_writeback(struct page *page) | 2383 | int __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 | } |
2421 | EXPORT_SYMBOL(test_set_page_writeback); | 2422 | EXPORT_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 |