summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-21 10:39:54 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-21 15:27:12 +0300
commit1a067a22e466d2910d10d47a7125bf7ced943165 (patch)
tree7bd2bd95730d063bcdc1b8bf1a03bb8e540e2284 /fs
parent8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e (diff)
downloadop-kernel-dev-1a067a22e466d2910d10d47a7125bf7ced943165.zip
op-kernel-dev-1a067a22e466d2910d10d47a7125bf7ced943165.tar.gz
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>
Diffstat (limited to 'fs')
-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 ec33b06..be6c7b0 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -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
* to write them back because of I/O errors.
*/
- ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0);
- ubifs_assert(c->budg_idx_growth == 0);
- ubifs_assert(c->budg_dd_growth == 0);
- ubifs_assert(c->budg_data_growth == 0);
+ if (!c->ro_error) {
+ ubifs_assert(atomic_long_read(&c->dirty_pg_cnt) == 0);
+ ubifs_assert(c->budg_idx_growth == 0);
+ ubifs_assert(c->budg_dd_growth == 0);
+ ubifs_assert(c->budg_data_growth == 0);
+ }
/*
* The 'c->umount_lock' prevents races between UBIFS memory shrinker
OpenPOWER on IntegriCloud