diff options
Diffstat (limited to 'fs/ext3/super.c')
-rw-r--r-- | fs/ext3/super.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index b34886734a44..a0623a84a4b2 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -1459,10 +1459,14 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) | |||
1459 | set_opt(sbi->s_mount_opt, GRPID); | 1459 | set_opt(sbi->s_mount_opt, GRPID); |
1460 | if (def_mount_opts & EXT3_DEFM_UID16) | 1460 | if (def_mount_opts & EXT3_DEFM_UID16) |
1461 | set_opt(sbi->s_mount_opt, NO_UID32); | 1461 | set_opt(sbi->s_mount_opt, NO_UID32); |
1462 | #ifdef CONFIG_EXT3_FS_XATTR | ||
1462 | if (def_mount_opts & EXT3_DEFM_XATTR_USER) | 1463 | if (def_mount_opts & EXT3_DEFM_XATTR_USER) |
1463 | set_opt(sbi->s_mount_opt, XATTR_USER); | 1464 | set_opt(sbi->s_mount_opt, XATTR_USER); |
1465 | #endif | ||
1466 | #ifdef CONFIG_EXT3_FS_POSIX_ACL | ||
1464 | if (def_mount_opts & EXT3_DEFM_ACL) | 1467 | if (def_mount_opts & EXT3_DEFM_ACL) |
1465 | set_opt(sbi->s_mount_opt, POSIX_ACL); | 1468 | set_opt(sbi->s_mount_opt, POSIX_ACL); |
1469 | #endif | ||
1466 | if ((def_mount_opts & EXT3_DEFM_JMODE) == EXT3_DEFM_JMODE_DATA) | 1470 | if ((def_mount_opts & EXT3_DEFM_JMODE) == EXT3_DEFM_JMODE_DATA) |
1467 | sbi->s_mount_opt |= EXT3_MOUNT_JOURNAL_DATA; | 1471 | sbi->s_mount_opt |= EXT3_MOUNT_JOURNAL_DATA; |
1468 | else if ((def_mount_opts & EXT3_DEFM_JMODE) == EXT3_DEFM_JMODE_ORDERED) | 1472 | else if ((def_mount_opts & EXT3_DEFM_JMODE) == EXT3_DEFM_JMODE_ORDERED) |
@@ -2344,6 +2348,22 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) | |||
2344 | err = -EROFS; | 2348 | err = -EROFS; |
2345 | goto restore_opts; | 2349 | goto restore_opts; |
2346 | } | 2350 | } |
2351 | |||
2352 | /* | ||
2353 | * If we have an unprocessed orphan list hanging | ||
2354 | * around from a previously readonly bdev mount, | ||
2355 | * require a full umount/remount for now. | ||
2356 | */ | ||
2357 | if (es->s_last_orphan) { | ||
2358 | printk(KERN_WARNING "EXT3-fs: %s: couldn't " | ||
2359 | "remount RDWR because of unprocessed " | ||
2360 | "orphan inode list. Please " | ||
2361 | "umount/remount instead.\n", | ||
2362 | sb->s_id); | ||
2363 | err = -EINVAL; | ||
2364 | goto restore_opts; | ||
2365 | } | ||
2366 | |||
2347 | /* | 2367 | /* |
2348 | * Mounting a RDONLY partition read-write, so reread | 2368 | * Mounting a RDONLY partition read-write, so reread |
2349 | * and store the current valid flag. (It may have | 2369 | * and store the current valid flag. (It may have |