Fix an ext4 regression which breaks remounting r/w file systems that
have the quota feature enabled. -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEK2m5VNv+CHkogTfJ8vlZVpUNgaMFAmSClpwACgkQ8vlZVpUN gaME9AgAhKZuMUc9HxcMmXgkrVVTYh18OQVNwb8yI09gVspUkNC43mgwtYLAL6XT fr1ifzSDgjKYSAaSXALP//zxo/xGAl1cKfjLz/XqeqU2TlVnQyvUTkO5ywe2YYHo UZ2HbbiYXKH1c5PsqcwaiPmcf/sZvrXjvpvP4v4iO/b58UBKG5OIIlP6X/XgArco KYeMuFZYOX+jsgP/9+I+cutUEa9paHnMxycmPARdrnem3eA0jZtS7YrLJijxFmbV c4AFcbtuaW+ZmMHPsxtYoeQxM7TbL3vA0FghS14MxtdCipLkv5MTPnstaW/jGnST IlHLwLADCktbusV8UVJotWfAWcKeGw== =lKq5 -----END PGP SIGNATURE----- Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fix from Ted Ts'o: "Fix an ext4 regression which breaks remounting r/w file systems that have the quota feature enabled" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: only check dquot_initialize_needed() when debugging Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled"
This commit is contained in:
commit
8fc1c596c2
|
@ -6388,7 +6388,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
|
|||
struct ext4_mount_options old_opts;
|
||||
ext4_group_t g;
|
||||
int err = 0;
|
||||
int enable_rw = 0;
|
||||
#ifdef CONFIG_QUOTA
|
||||
int enable_quota = 0;
|
||||
int i, j;
|
||||
|
@ -6575,7 +6574,7 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
|
|||
if (err)
|
||||
goto restore_opts;
|
||||
|
||||
enable_rw = 1;
|
||||
sb->s_flags &= ~SB_RDONLY;
|
||||
if (ext4_has_feature_mmp(sb)) {
|
||||
err = ext4_multi_mount_protect(sb,
|
||||
le64_to_cpu(es->s_mmp_block));
|
||||
|
@ -6622,9 +6621,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
|
|||
if (!test_opt(sb, BLOCK_VALIDITY) && sbi->s_system_blks)
|
||||
ext4_release_system_zone(sb);
|
||||
|
||||
if (enable_rw)
|
||||
sb->s_flags &= ~SB_RDONLY;
|
||||
|
||||
/*
|
||||
* Reinitialize lazy itable initialization thread based on
|
||||
* current settings
|
||||
|
|
|
@ -2056,8 +2056,9 @@ inserted:
|
|||
else {
|
||||
u32 ref;
|
||||
|
||||
#ifdef EXT4_XATTR_DEBUG
|
||||
WARN_ON_ONCE(dquot_initialize_needed(inode));
|
||||
|
||||
#endif
|
||||
/* The old block is released after updating
|
||||
the inode. */
|
||||
error = dquot_alloc_block(inode,
|
||||
|
@ -2120,8 +2121,9 @@ inserted:
|
|||
/* We need to allocate a new block */
|
||||
ext4_fsblk_t goal, block;
|
||||
|
||||
#ifdef EXT4_XATTR_DEBUG
|
||||
WARN_ON_ONCE(dquot_initialize_needed(inode));
|
||||
|
||||
#endif
|
||||
goal = ext4_group_first_block_no(sb,
|
||||
EXT4_I(inode)->i_block_group);
|
||||
block = ext4_new_meta_blocks(handle, inode, goal, 0,
|
||||
|
|
Loading…
Reference in New Issue