aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-29 17:20:42 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-29 17:20:42 +0100
commitaf0533d532ba15517a72eb74123b74b1d95b2b93 (patch)
treecdbb12e340b63015593806305acb9c0e6f419ccb
parent233f8d7e1501a21686dbbed35dcfcdbc7074cee0 (diff)
downloadqueue-3.18-af0533d532ba15517a72eb74123b74b1d95b2b93.tar.gz
drop patch now applied
-rw-r--r--dm-btree-increase-rebalance-threshold-in-__rebalance2.patch67
-rw-r--r--series5
2 files changed, 0 insertions, 72 deletions
diff --git a/dm-btree-increase-rebalance-threshold-in-__rebalance2.patch b/dm-btree-increase-rebalance-threshold-in-__rebalance2.patch
deleted file mode 100644
index a95525c..0000000
--- a/dm-btree-increase-rebalance-threshold-in-__rebalance2.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 474e559567fa631dea8fb8407ab1b6090c903755 Mon Sep 17 00:00:00 2001
-From: Hou Tao <houtao1@huawei.com>
-Date: Tue, 3 Dec 2019 19:42:58 +0800
-Subject: dm btree: increase rebalance threshold in __rebalance2()
-
-From: Hou Tao <houtao1@huawei.com>
-
-commit 474e559567fa631dea8fb8407ab1b6090c903755 upstream.
-
-We got the following warnings from thin_check during thin-pool setup:
-
- $ thin_check /dev/vdb
- examining superblock
- examining devices tree
- missing devices: [1, 84]
- too few entries in btree_node: 41, expected at least 42 (block 138, max_entries = 126)
- examining mapping tree
-
-The phenomenon is the number of entries in one node of details_info tree is
-less than (max_entries / 3). And it can be easily reproduced by the following
-procedures:
-
- $ new a thin pool
- $ presume the max entries of details_info tree is 126
- $ new 127 thin devices (e.g. 1~127) to make the root node being full
- and then split
- $ remove the first 43 (e.g. 1~43) thin devices to make the children
- reblance repeatedly
- $ stop the thin pool
- $ thin_check
-
-The root cause is that the B-tree removal procedure in __rebalance2()
-doesn't guarantee the invariance: the minimal number of entries in
-non-root node should be >= (max_entries / 3).
-
-Simply fix the problem by increasing the rebalance threshold to
-make sure the number of entries in each child will be greater
-than or equal to (max_entries / 3 + 1), so no matter which
-child is used for removal, the number will still be valid.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Hou Tao <houtao1@huawei.com>
-Acked-by: Joe Thornber <ejt@redhat.com>
-Signed-off-by: Mike Snitzer <snitzer@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/md/persistent-data/dm-btree-remove.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
---- a/drivers/md/persistent-data/dm-btree-remove.c
-+++ b/drivers/md/persistent-data/dm-btree-remove.c
-@@ -203,7 +203,13 @@ static void __rebalance2(struct dm_btree
- struct btree_node *right = r->n;
- uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
- uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
-- unsigned threshold = 2 * merge_threshold(left) + 1;
-+ /*
-+ * Ensure the number of entries in each child will be greater
-+ * than or equal to (max_entries / 3 + 1), so no matter which
-+ * child is used for removal, the number will still be not
-+ * less than (max_entries / 3).
-+ */
-+ unsigned int threshold = 2 * (merge_threshold(left) + 1);
-
- if (nr_left + nr_right < threshold) {
- /*
diff --git a/series b/series
index 8be3282..b0eb7d5 100644
--- a/series
+++ b/series
@@ -1,12 +1,8 @@
-dm-btree-increase-rebalance-threshold-in-__rebalance2.patch
-
-# newer stuff
btrfs-do-not-leak-reloc-root-if-we-fail-to-read-the-fs-root.patch
btrfs-handle-enoent-in-btrfs_uuid_tree_iterate.patch
alsa-pcm-avoid-possible-info-leaks-from-pcm-stream-buffers.patch
alsa-hda-ca0132-keep-power-on-during-processing-dsp-response.patch
alsa-hda-ca0132-avoid-endless-loop.patch
-
af_packet-set-defaule-value-for-tmo.patch
mod_devicetable-fix-phy-module-format.patch
net-qlogic-fix-error-paths-in-ql_alloc_large_buffers.patch
@@ -15,4 +11,3 @@ usbip-fix-error-path-of-vhci_recv_ret_submit.patch
usb-ehci-do-not-return-epipe-when-hub-is-disconnected.patch
ext4-check-for-directory-entries-too-close-to-block-end.patch
powerpc-irq-fix-stack-overflow-verification.patch
-