diff --git a/[refs] b/[refs] index c036850f508e..2c5aa58f51fa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bfb58478fe2f8cbbb776d910ff3549515e3c8f4f +refs/heads/master: ea9a05a1330053759c02eb2c60547085140a4cbd diff --git a/trunk/fs/ext3/super.c b/trunk/fs/ext3/super.c index b34886734a44..5eec3eb409a2 100644 --- a/trunk/fs/ext3/super.c +++ b/trunk/fs/ext3/super.c @@ -2344,6 +2344,22 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) err = -EROFS; goto restore_opts; } + + /* + * If we have an unprocessed orphan list hanging + * around from a previously readonly bdev mount, + * require a full umount/remount for now. + */ + if (es->s_last_orphan) { + printk(KERN_WARNING "EXT3-fs: %s: couldn't " + "remount RDWR because of unprocessed " + "orphan inode list. Please " + "umount/remount instead.\n", + sb->s_id); + err = -EINVAL; + goto restore_opts; + } + /* * Mounting a RDONLY partition read-write, so reread * and store the current valid flag. (It may have