aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext3/super.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 8c892e93d8e7..d90ad0574705 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -1479,10 +1479,12 @@ static void ext3_orphan_cleanup (struct super_block * sb,
1479 } 1479 }
1480 1480
1481 if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { 1481 if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) {
1482 if (es->s_last_orphan) 1482 /* don't clear list on RO mount w/ errors */
1483 if (es->s_last_orphan && !(s_flags & MS_RDONLY)) {
1483 jbd_debug(1, "Errors on filesystem, " 1484 jbd_debug(1, "Errors on filesystem, "
1484 "clearing orphan list.\n"); 1485 "clearing orphan list.\n");
1485 es->s_last_orphan = 0; 1486 es->s_last_orphan = 0;
1487 }
1486 jbd_debug(1, "Skipping orphan recovery on fs with errors.\n"); 1488 jbd_debug(1, "Skipping orphan recovery on fs with errors.\n");
1487 return; 1489 return;
1488 } 1490 }