Commit 8fc1c596 authored by Linus Torvalds's avatar Linus Torvalds

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"
parents 33f2b578 dea9d8f7
...@@ -6388,7 +6388,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb) ...@@ -6388,7 +6388,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
struct ext4_mount_options old_opts; struct ext4_mount_options old_opts;
ext4_group_t g; ext4_group_t g;
int err = 0; int err = 0;
int enable_rw = 0;
#ifdef CONFIG_QUOTA #ifdef CONFIG_QUOTA
int enable_quota = 0; int enable_quota = 0;
int i, j; int i, j;
...@@ -6575,7 +6574,7 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb) ...@@ -6575,7 +6574,7 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb)
if (err) if (err)
goto restore_opts; goto restore_opts;
enable_rw = 1; sb->s_flags &= ~SB_RDONLY;
if (ext4_has_feature_mmp(sb)) { if (ext4_has_feature_mmp(sb)) {
err = ext4_multi_mount_protect(sb, err = ext4_multi_mount_protect(sb,
le64_to_cpu(es->s_mmp_block)); le64_to_cpu(es->s_mmp_block));
...@@ -6622,9 +6621,6 @@ static int __ext4_remount(struct fs_context *fc, struct super_block *sb) ...@@ -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) if (!test_opt(sb, BLOCK_VALIDITY) && sbi->s_system_blks)
ext4_release_system_zone(sb); ext4_release_system_zone(sb);
if (enable_rw)
sb->s_flags &= ~SB_RDONLY;
/* /*
* Reinitialize lazy itable initialization thread based on * Reinitialize lazy itable initialization thread based on
* current settings * current settings
......
...@@ -2056,8 +2056,9 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode, ...@@ -2056,8 +2056,9 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode,
else { else {
u32 ref; u32 ref;
#ifdef EXT4_XATTR_DEBUG
WARN_ON_ONCE(dquot_initialize_needed(inode)); WARN_ON_ONCE(dquot_initialize_needed(inode));
#endif
/* The old block is released after updating /* The old block is released after updating
the inode. */ the inode. */
error = dquot_alloc_block(inode, error = dquot_alloc_block(inode,
...@@ -2120,8 +2121,9 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode, ...@@ -2120,8 +2121,9 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode,
/* We need to allocate a new block */ /* We need to allocate a new block */
ext4_fsblk_t goal, block; ext4_fsblk_t goal, block;
#ifdef EXT4_XATTR_DEBUG
WARN_ON_ONCE(dquot_initialize_needed(inode)); WARN_ON_ONCE(dquot_initialize_needed(inode));
#endif
goal = ext4_group_first_block_no(sb, goal = ext4_group_first_block_no(sb,
EXT4_I(inode)->i_block_group); EXT4_I(inode)->i_block_group);
block = ext4_new_meta_blocks(handle, inode, goal, 0, block = ext4_new_meta_blocks(handle, inode, goal, 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment