Home Home > GIT Browse > openSUSE-42.3
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2019-01-12 07:20:45 +0100
committerKernel Build Daemon <kbuild@suse.de>2019-01-12 07:20:45 +0100
commit197df986b8235d45d158e40d667651c642f221af (patch)
tree83b9241d753767b0fe8b4434af328527395b986d
parent06d53ea447080ea7d0e5e8e3dbbd2b9a0a22f715 (diff)
parentf176f2b8791c77004974c05d70418a5cbad83e67 (diff)
Merge branch 'SLE12-SP3' into openSUSE-42.3
-rw-r--r--patches.fixes/xfs-fix-quotacheck-dquot-id-overflow-infinite-loop.patch42
-rw-r--r--series.conf1
2 files changed, 43 insertions, 0 deletions
diff --git a/patches.fixes/xfs-fix-quotacheck-dquot-id-overflow-infinite-loop.patch b/patches.fixes/xfs-fix-quotacheck-dquot-id-overflow-infinite-loop.patch
new file mode 100644
index 0000000000..123d01f63f
--- /dev/null
+++ b/patches.fixes/xfs-fix-quotacheck-dquot-id-overflow-infinite-loop.patch
@@ -0,0 +1,42 @@
+From cfaf2d034360166e569a4929dd83ae9698bed856 Mon Sep 17 00:00:00 2001
+From: Brian Foster <bfoster@redhat.com>
+Date: Mon, 24 Jul 2017 08:33:25 -0700
+Subject: [PATCH] xfs: fix quotacheck dquot id overflow infinite loop
+Git-commit: cfaf2d034360166e569a4929dd83ae9698bed856
+Patch-mainline: v4.13-rc3
+References: bsc#1121621
+
+If a dquot has an id of U32_MAX, the next lookup index increment
+overflows the uint32_t back to 0. This starts the lookup sequence
+over from the beginning, repeats indefinitely and results in a
+livelock.
+
+Update xfs_qm_dquot_walk() to explicitly check for the lookup
+overflow and exit the loop.
+
+Signed-off-by: Brian Foster <bfoster@redhat.com>
+Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
+Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
+Acked-by: Anthony Iliopoulos <ailiopoulos@suse.com>
+
+---
+ fs/xfs/xfs_qm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
+index 6ce948c436d5..15751dc2a27d 100644
+--- a/fs/xfs/xfs_qm.c
++++ b/fs/xfs/xfs_qm.c
+@@ -111,6 +111,9 @@ xfs_qm_dquot_walk(
+ skipped = 0;
+ break;
+ }
++ /* we're done if id overflows back to zero */
++ if (!next_index)
++ break;
+ }
+
+ if (skipped) {
+--
+2.16.4
+
diff --git a/series.conf b/series.conf
index 920756ddb2..a9ea10073b 100644
--- a/series.conf
+++ b/series.conf
@@ -21527,6 +21527,7 @@
patches.suse/btrfs-round-down-size-diff-when-shrinking-growing-device.patch
patches.arch/powerpc-mm-hash-Free-the-subpage_prot_table-correctl.patch
patches.suse/0001-arm64-sysreg-Fix-unprotected-macro-argmuent-in-write.patch
+ patches.fixes/xfs-fix-quotacheck-dquot-id-overflow-infinite-loop.patch
patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch
patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch
patches.arch/0002-kprobes-x86-release-insn_slot-in-failure-path