提交 1a067a22 编写于 作者: A Artem Bityutskiy

UBIFS: fix false assertion warning in case of I/O failures

When UBIFS switches to R/O mode because it detects I/O failures, then
when we unmount, we still may have allocated budget, and the assertions
which verify that we have not budget will fire. But it is expected to
have the budget in case of I/O failures, so the assertion warnings will
be false. Suppress them for the I/O failure case.
Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
上级 8c230d9a
...@@ -1772,10 +1772,12 @@ static void ubifs_put_super(struct super_block *sb) ...@@ -1772,10 +1772,12 @@ static void ubifs_put_super(struct super_block *sb)
* of the media. For example, there will be dirty inodes if we failed * of the media. For example, there will be dirty inodes if we failed
* to write them back because of I/O errors. * to write them back because of I/O errors.
*/ */
if (!c->ro_error) {
ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0); ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0);
ubifs_assert(c->budg_idx_growth == 0); ubifs_assert(c->budg_idx_growth == 0);
ubifs_assert(c->budg_dd_growth == 0); ubifs_assert(c->budg_dd_growth == 0);
ubifs_assert(c->budg_data_growth == 0); ubifs_assert(c->budg_data_growth == 0);
}
/* /*
* The 'c->umount_lock' prevents races between UBIFS memory shrinker * The 'c->umount_lock' prevents races between UBIFS memory shrinker
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册