diff options
author | Matthew Wilcox <mawilcox@microsoft.com> | 2018-04-10 19:36:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-04-11 13:28:39 -0400 |
commit | f82b376413298ddd39a2391e38260c15cdebf380 (patch) | |
tree | f97e2eb7c6a646ccec2afb400bc3305965b4ac41 /fs | |
parent | d339d705f7024d602b1449e36e53451a0fcde9fa (diff) |
export __set_page_dirty
XFS currently contains a copy-and-paste of __set_page_dirty(). Export
it from buffer.c instead.
Link: http://lkml.kernel.org/r/20180313132639.17387-6-willy@infradead.org
Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Acked-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Cc: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/buffer.c | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_aops.c | 15 |
2 files changed, 4 insertions, 14 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index ec5dd39071e6..64b1e2065b6b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -594,7 +594,7 @@ EXPORT_SYMBOL(mark_buffer_dirty_inode); | |||
594 | * | 594 | * |
595 | * The caller must hold lock_page_memcg(). | 595 | * The caller must hold lock_page_memcg(). |
596 | */ | 596 | */ |
597 | static void __set_page_dirty(struct page *page, struct address_space *mapping, | 597 | void __set_page_dirty(struct page *page, struct address_space *mapping, |
598 | int warn) | 598 | int warn) |
599 | { | 599 | { |
600 | unsigned long flags; | 600 | unsigned long flags; |
@@ -608,6 +608,7 @@ static void __set_page_dirty(struct page *page, struct address_space *mapping, | |||
608 | } | 608 | } |
609 | spin_unlock_irqrestore(&mapping->tree_lock, flags); | 609 | spin_unlock_irqrestore(&mapping->tree_lock, flags); |
610 | } | 610 | } |
611 | EXPORT_SYMBOL_GPL(__set_page_dirty); | ||
611 | 612 | ||
612 | /* | 613 | /* |
613 | * Add a page to the dirty page list. | 614 | * Add a page to the dirty page list. |
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index 436a1de3fcdf..0ab824f574ed 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c | |||
@@ -1467,19 +1467,8 @@ xfs_vm_set_page_dirty( | |||
1467 | newly_dirty = !TestSetPageDirty(page); | 1467 | newly_dirty = !TestSetPageDirty(page); |
1468 | spin_unlock(&mapping->private_lock); | 1468 | spin_unlock(&mapping->private_lock); |
1469 | 1469 | ||
1470 | if (newly_dirty) { | 1470 | if (newly_dirty) |
1471 | /* sigh - __set_page_dirty() is static, so copy it here, too */ | 1471 | __set_page_dirty(page, mapping, 1); |
1472 | unsigned long flags; | ||
1473 | |||
1474 | spin_lock_irqsave(&mapping->tree_lock, flags); | ||
1475 | if (page->mapping) { /* Race with truncate? */ | ||
1476 | WARN_ON_ONCE(!PageUptodate(page)); | ||
1477 | account_page_dirtied(page, mapping); | ||
1478 | radix_tree_tag_set(&mapping->page_tree, | ||
1479 | page_index(page), PAGECACHE_TAG_DIRTY); | ||
1480 | } | ||
1481 | spin_unlock_irqrestore(&mapping->tree_lock, flags); | ||
1482 | } | ||
1483 | unlock_page_memcg(page); | 1472 | unlock_page_memcg(page); |
1484 | if (newly_dirty) | 1473 | if (newly_dirty) |
1485 | __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); | 1474 | __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); |