aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-21 03:39:54 -0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-21 08:27:12 -0400
commit1a067a22e466d2910d10d47a7125bf7ced943165 (patch)
tree7bd2bd95730d063bcdc1b8bf1a03bb8e540e2284
parent8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e (diff)
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: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--fs/ubifs/super.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index ec33b0670d02..be6c7b008f38 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1772,10 +1772,12 @@ static void ubifs_put_super(struct super_block *sb)
1772 * of the media. For example, there will be dirty inodes if we failed 1772 * of the media. For example, there will be dirty inodes if we failed
1773 * to write them back because of I/O errors. 1773 * to write them back because of I/O errors.
1774 */ 1774 */
1775 ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0); 1775 if (!c->ro_error) {
1776 ubifs_assert(c->budg_idx_growth == 0); 1776 ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0);
1777 ubifs_assert(c->budg_dd_growth == 0); 1777 ubifs_assert(c->budg_idx_growth == 0);
1778 ubifs_assert(c->budg_data_growth == 0); 1778 ubifs_assert(c->budg_dd_growth == 0);
1779 ubifs_assert(c->budg_data_growth == 0);
1780 }
1779 1781
1780 /* 1782 /*
1781 * The 'c->umount_lock' prevents races between UBIFS memory shrinker 1783 * The 'c->umount_lock' prevents races between UBIFS memory shrinker