diff options
-rw-r--r-- | fs/ext3/super.c | 6 |
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 | } |