[Devel] [PATCH RHEL7 COMMIT] ve/fs/writeback: filter per-container inodes earlier
Konstantin Khorenko
khorenko at virtuozzo.com
Sat Feb 6 05:04:49 PST 2016
The commit is pushed to "branch-rh7-3.10.0-327.3.1-vz7.10.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-327.3.1.vz7.10.10
------>
commit 0ef145597e6beb146baa07e2cc2180567dc77c82
Author: Andrey Ryabinin <aryabinin at virtuozzo.com>
Date: Sat Feb 6 17:04:49 2016 +0400
ve/fs/writeback: filter per-container inodes earlier
Filter inodes before should happen befor the check for I_SYNC flag.
During per-container writeback we don't want to requeue inodes from
other containers.
https://jira.sw.ru/browse/PSBM-39583
Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
Reviewed-by: Vladimir Davydov <vdavydov 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);
More information about the Devel
mailing list