f2fs: check bdi->dirty_exceeded when trying to skip data writes
If we don't check the current backing device status, balance_dirty_pages can fall into infinite pausing routine. This can be occurred when a lot of directories make a small number of dirty dentry pages including files. Reported-by: Brian Chadwick <brianchad@westnet.com.au> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Родитель
b2c0829912
Коммит
2743f86554
|
@ -42,6 +42,8 @@ bool available_free_memory(struct f2fs_sb_info *sbi, int type)
|
|||
mem_size = (nm_i->nat_cnt * sizeof(struct nat_entry)) >> 12;
|
||||
res = mem_size < ((val.totalram * nm_i->ram_thresh / 100) >> 2);
|
||||
} else if (type == DIRTY_DENTS) {
|
||||
if (sbi->sb->s_bdi->dirty_exceeded)
|
||||
return false;
|
||||
mem_size = get_pages(sbi, F2FS_DIRTY_DENTS);
|
||||
res = mem_size < ((val.totalram * nm_i->ram_thresh / 100) >> 1);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче