From cfdfaf66467aadccd45afa8be4419b922df70731 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 12 Jun 2023 10:43:19 +0200 Subject: [PATCH] 5.15-stable patches added patches: ext4-only-check-dquot_initialize_needed-when-debugging.patch revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch --- ...uot_initialize_needed-when-debugging.patch | 47 +++++++++++++++++++ ...unting-r-w-until-quota-is-re-enabled.patch | 47 +++++++++++++++++++ queue-5.15/series | 2 + 3 files changed, 96 insertions(+) create mode 100644 queue-5.15/ext4-only-check-dquot_initialize_needed-when-debugging.patch create mode 100644 queue-5.15/revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch diff --git a/queue-5.15/ext4-only-check-dquot_initialize_needed-when-debugging.patch b/queue-5.15/ext4-only-check-dquot_initialize_needed-when-debugging.patch new file mode 100644 index 00000000000..380aee67401 --- /dev/null +++ b/queue-5.15/ext4-only-check-dquot_initialize_needed-when-debugging.patch @@ -0,0 +1,47 @@ +From dea9d8f7643fab07bf89a1155f1f94f37d096a5e Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Thu, 8 Jun 2023 10:06:40 -0400 +Subject: ext4: only check dquot_initialize_needed() when debugging + +From: Theodore Ts'o + +commit dea9d8f7643fab07bf89a1155f1f94f37d096a5e upstream. + +ext4_xattr_block_set() relies on its caller to call dquot_initialize() +on the inode. To assure that this has happened there are WARN_ON +checks. Unfortunately, this is subject to false positives if there is +an antagonist thread which is flipping the file system at high rates +between r/o and rw. So only do the check if EXT4_XATTR_DEBUG is +enabled. + +Link: https://lore.kernel.org/r/20230608044056.GA1418535@mit.edu +Signed-off-by: Theodore Ts'o +Signed-off-by: Greg Kroah-Hartman +--- + fs/ext4/xattr.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/fs/ext4/xattr.c ++++ b/fs/ext4/xattr.c +@@ -2006,8 +2006,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, +@@ -2070,8 +2071,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, diff --git a/queue-5.15/revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch b/queue-5.15/revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch new file mode 100644 index 00000000000..4d1aea6d92b --- /dev/null +++ b/queue-5.15/revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch @@ -0,0 +1,47 @@ +From 1b29243933098cdbc31b579b5616e183b4275e2f Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Thu, 8 Jun 2023 09:57:04 -0400 +Subject: Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled" + +From: Theodore Ts'o + +commit 1b29243933098cdbc31b579b5616e183b4275e2f upstream. + +This reverts commit a44be64bbecb15a452496f60db6eacfee2b59c79. + +Link: https://lore.kernel.org/r/653b3359-2005-21b1-039d-c55ca4cffdcc@gmail.com +Signed-off-by: Theodore Ts'o +Signed-off-by: Greg Kroah-Hartman +--- + fs/ext4/super.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -5748,7 +5748,6 @@ static int ext4_remount(struct super_blo + 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; +@@ -5949,7 +5948,7 @@ static int ext4_remount(struct super_blo + 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)); +@@ -5996,9 +5995,6 @@ static int ext4_remount(struct super_blo + 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 diff --git a/queue-5.15/series b/queue-5.15/series index 8ac89e645a1..a96c4e91763 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -84,3 +84,5 @@ riscv-fix-kprobe-__user-string-arg-print-fault-issue.patch vduse-avoid-empty-string-for-dev-name.patch vhost-support-packed-when-setting-getting-vring_base.patch vhost_vdpa-support-packed-when-setting-getting-vring.patch +revert-ext4-don-t-clear-sb_rdonly-when-remounting-r-w-until-quota-is-re-enabled.patch +ext4-only-check-dquot_initialize_needed-when-debugging.patch -- 2.47.2