[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-xfs
Subject: [PATCH 19/21] xfs: remove xfs_start_page_writeback
From: Christoph Hellwig <hch () lst ! de>
Date: 2018-05-31 18:07:57
Message-ID: 20180531180759.21631-20-hch () lst ! de
[Download RAW message or body]
This helper only has two callers, one of them with a constant error
argument. Remove it to make pending changes to the code a little easier.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
---
fs/xfs/xfs_aops.c | 47 +++++++++++++++++++++--------------------------
1 file changed, 21 insertions(+), 26 deletions(-)
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 8328f55b7ea7..e017e7ea3a51 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -499,30 +499,6 @@ xfs_map_blocks(
return 0;
}
-STATIC void
-xfs_start_page_writeback(
- struct page *page,
- int clear_dirty)
-{
- ASSERT(PageLocked(page));
- ASSERT(!PageWriteback(page));
-
- /*
- * if the page was not fully cleaned, we need to ensure that the higher
- * layers come back to it correctly. That means we need to keep the page
- * dirty, and for WB_SYNC_ALL writeback we need to ensure the
- * PAGECACHE_TAG_TOWRITE index mark is not removed so another attempt to
- * write this page in this writeback sweep will be made.
- */
- if (clear_dirty) {
- clear_page_dirty_for_io(page);
- set_page_writeback(page);
- } else
- set_page_writeback_keepwrite(page);
-
- unlock_page(page);
-}
-
/*
* Submit the bio for an ioend. We are passed an ioend with a bio attached to
* it, and we submit that bio. The ioend may be used for multiple bio
@@ -856,6 +832,9 @@ xfs_writepage_map(
ASSERT(wpc->ioend || list_empty(&submit_list));
out:
+ ASSERT(PageLocked(page));
+ ASSERT(!PageWriteback(page));
+
/*
* On error, we have to fail the ioend here because we have locked
* buffers in the ioend. If we don't do this, we'll deadlock
@@ -874,7 +853,21 @@ xfs_writepage_map(
* treated correctly on error.
*/
if (count) {
- xfs_start_page_writeback(page, !error);
+ /*
+ * If the page was not fully cleaned, we need to ensure that the
+ * higher layers come back to it correctly. That means we need
+ * to keep the page dirty, and for WB_SYNC_ALL writeback we need
+ * to ensure the PAGECACHE_TAG_TOWRITE index mark is not removed
+ * so another attempt to write this page in this writeback sweep
+ * will be made.
+ */
+ if (error) {
+ set_page_writeback_keepwrite(page);
+ } else {
+ clear_page_dirty_for_io(page);
+ set_page_writeback(page);
+ }
+ unlock_page(page);
/*
* Preserve the original error if there was one, otherwise catch
@@ -899,7 +892,9 @@ xfs_writepage_map(
* race with a partial page truncate on a sub-page block sized
* filesystem. In that case we need to mark the page clean.
*/
- xfs_start_page_writeback(page, 1);
+ clear_page_dirty_for_io(page);
+ set_page_writeback(page);
+ unlock_page(page);
end_page_writeback(page);
}
--
2.17.0
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic