[Devel] [PATCH rh7 v3 1/3] ve/fs/writeback: filter per-container inodes earlier

Andrey Ryabinin aryabinin at virtuozzo.com
Wed Feb 3 08:46:10 PST 2016


Filter inodes before should happen befor the check for I_SYNC flag.
During per-container writeback we don't wan't to requeue inodes from
other containers.

https://jira.sw.ru/browse/PSBM-39583

Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
---
 fs/fs-writeback.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index d48530f9..16bc6b3 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -711,6 +711,13 @@ static long writeback_sb_inodes(struct super_block *sb,
 			redirty_tail(inode, wb);
 			continue;
 		}
+		if ((work->ub || work->filter_ub) &&
+		     ub_should_skip_writeback(work->ub, inode)) {
+			spin_unlock(&inode->i_lock);
+			redirty_tail(inode, wb);
+			continue;
+		}
+
 		if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) {
 			/*
 			 * If this inode is locked for writeback and we are not
@@ -726,12 +733,6 @@ static long writeback_sb_inodes(struct super_block *sb,
 			trace_writeback_sb_inodes_requeue(inode);
 			continue;
 		}
-		if ((work->ub || work->filter_ub) &&
-		     ub_should_skip_writeback(work->ub, inode)) {
-			spin_unlock(&inode->i_lock);
-			redirty_tail(inode, wb);
-			continue;
-		}
 
 		spin_unlock(&wb->list_lock);
 
-- 
2.4.10



More information about the Devel mailing list