From: Greg Kroah-Hartman Date: Thu, 30 Jan 2025 08:55:11 +0000 (+0100) Subject: 6.1-stable patches X-Git-Tag: v6.13.1~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de9aab9c96ef8b5621581b150e45501f952d1a67;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: gfs2-truncate-address-space-when-flipping-gfs2_dif_jdata-flag.patch io_uring-fix-waiters-missing-wake-ups.patch --- diff --git a/queue-6.1/gfs2-truncate-address-space-when-flipping-gfs2_dif_jdata-flag.patch b/queue-6.1/gfs2-truncate-address-space-when-flipping-gfs2_dif_jdata-flag.patch new file mode 100644 index 0000000000..4ba0f2bba3 --- /dev/null +++ b/queue-6.1/gfs2-truncate-address-space-when-flipping-gfs2_dif_jdata-flag.patch @@ -0,0 +1,30 @@ +From 7c9d9223802fbed4dee1ae301661bf346964c9d2 Mon Sep 17 00:00:00 2001 +From: Andreas Gruenbacher +Date: Mon, 13 Jan 2025 19:31:28 +0100 +Subject: gfs2: Truncate address space when flipping GFS2_DIF_JDATA flag + +From: Andreas Gruenbacher + +commit 7c9d9223802fbed4dee1ae301661bf346964c9d2 upstream. + +Truncate an inode's address space when flipping the GFS2_DIF_JDATA flag: +depending on that flag, the pages in the address space will either use +buffer heads or iomap_folio_state structs, and we cannot mix the two. + +Reported-by: Kun Hu , Jiaji Qin +Signed-off-by: Andreas Gruenbacher +Signed-off-by: Greg Kroah-Hartman +--- + fs/gfs2/file.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/fs/gfs2/file.c ++++ b/fs/gfs2/file.c +@@ -250,6 +250,7 @@ static int do_gfs2_set_flags(struct inod + error = filemap_fdatawait(inode->i_mapping); + if (error) + goto out; ++ truncate_inode_pages(inode->i_mapping, 0); + if (new_flags & GFS2_DIF_JDATA) + gfs2_ordered_del_inode(ip); + } diff --git a/queue-6.1/io_uring-fix-waiters-missing-wake-ups.patch b/queue-6.1/io_uring-fix-waiters-missing-wake-ups.patch new file mode 100644 index 0000000000..e589e66f2f --- /dev/null +++ b/queue-6.1/io_uring-fix-waiters-missing-wake-ups.patch @@ -0,0 +1,39 @@ +From 3181e22fb79910c7071e84a43af93ac89e8a7106 Mon Sep 17 00:00:00 2001 +From: Pavel Begunkov +Date: Mon, 9 Jan 2023 14:46:10 +0000 +Subject: io_uring: fix waiters missing wake ups + +From: Pavel Begunkov + +There are reports of mariadb hangs, which is caused by a missing +barrier in the waking code resulting in waiters losing events. + +The problem was introduced in a backport +3ab9326f93ec4 ("io_uring: wake up optimisations"), +and the change restores the barrier present in the original commit +3ab9326f93ec4 ("io_uring: wake up optimisations") + +Reported by: Xan Charbonnet +Fixes: 3ab9326f93ec4 ("io_uring: wake up optimisations") +Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1093243#99 +Reviewed-by: Li Zetao +Signed-off-by: Pavel Begunkov +Signed-off-by: Greg Kroah-Hartman +--- + io_uring/io_uring.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/io_uring/io_uring.c ++++ b/io_uring/io_uring.c +@@ -597,8 +597,10 @@ static inline void __io_cq_unlock_post_f + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_commit_cqring_flush(ctx); +- if (!(ctx->flags & IORING_SETUP_DEFER_TASKRUN)) ++ if (!(ctx->flags & IORING_SETUP_DEFER_TASKRUN)) { ++ smp_mb(); + __io_cqring_wake(ctx); ++ } + } + + void io_cq_unlock_post(struct io_ring_ctx *ctx) diff --git a/queue-6.1/series b/queue-6.1/series index 162361c5ef..0215d0c254 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -28,3 +28,5 @@ xfs-clean-up-dqblk-extraction.patch xfs-dquot-recovery-does-not-validate-the-recovered-dquot.patch xfs-clean-up-fs_xflag_realtime-handling-in-xfs_ioctl_setattr_xflags.patch xfs-respect-the-stable-writes-flag-on-the-rt-device.patch +gfs2-truncate-address-space-when-flipping-gfs2_dif_jdata-flag.patch +io_uring-fix-waiters-missing-wake-ups.patch