When flushing node pages, if current node page is an inline inode page, we
will try to merge inline data from data page into inline inode page, then
skip flushing current node page, it will decrease the number of nodes to
be flushed in batch in this round, which may lead to worse performance.

This patch gives a chance to flush just merged inline inode pages for
performance.

Signed-off-by: Chao Yu <[email protected]>
---
 fs/f2fs/node.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 966176b..82cde7a 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1275,6 +1275,7 @@ next_step:
                         * If an fsync mode,
                         * we should not skip writing node pages.
                         */
+lock_node:
                        if (ino && ino_of_node(page) == ino)
                                lock_page(page);
                        else if (!trylock_page(page))
@@ -1298,7 +1299,7 @@ continue_unlock:
                                clear_inline_node(page);
                                unlock_page(page);
                                flush_inline_data(sbi, ino_of_node(page));
-                               continue;
+                               goto lock_node;
                        }
 
                        f2fs_wait_on_page_writeback(page, NODE, true);
-- 
2.7.0



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to