Port of diff-ubc-dont-skip-dirty-metadata-on-filtered-sync patch
from PCS6.

Don't skip dirty metadata during per container sync[fs].

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

Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com>
---
 fs/fs-writeback.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index b6b33d0..101892a 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -714,6 +714,7 @@ static long writeback_sb_inodes(struct super_block *sb,
                        continue;
                }
                if ((work->ub || work->filter_ub) &&
+                   ((inode->i_state & I_DIRTY) == I_DIRTY_PAGES) &&
                     ub_should_skip_writeback(work->ub, inode)) {
                        spin_unlock(&inode->i_lock);
                        redirty_tail(inode, wb);
@@ -1411,7 +1412,8 @@ static void wait_sb_inodes(struct super_block *sb, struct 
user_beancounter *ub)
                        spin_unlock(&inode->i_lock);
                        continue;
                }
-               if (ub && (mapping->dirtied_ub != ub)) {
+               if (ub && (mapping->dirtied_ub != ub) &&
+                   ((inode->i_state & I_DIRTY) == I_DIRTY_PAGES)) {
                        spin_unlock(&inode->i_lock);
                        continue;
                }
-- 
2.4.10

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to