summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <justus@gnupg.org>2016-04-30 00:21:48 +0200
committerJustus Winter <justus@gnupg.org>2016-04-30 00:21:48 +0200
commit20d22e1c6a4055a67ea394e7d76e870f5665c34b (patch)
tree8bb5ebf0ce4cc80bb16b7701908cfaae44216ff1
parent8af64c48985432f81682710f8be998f30b22300e (diff)
add patch series
-rw-r--r--debian/patches/ihash0001-libihash-fix-corner-case.patch30
-rw-r--r--debian/patches/ihash0002-libihash-enable-fast-insertions-replacing-tombstones.patch44
-rw-r--r--debian/patches/series2
3 files changed, 76 insertions, 0 deletions
diff --git a/debian/patches/ihash0001-libihash-fix-corner-case.patch b/debian/patches/ihash0001-libihash-fix-corner-case.patch
new file mode 100644
index 00000000..fc78156e
--- /dev/null
+++ b/debian/patches/ihash0001-libihash-fix-corner-case.patch
@@ -0,0 +1,30 @@
+From 5dcebe3443c54e0dfcc6aa1fcd0713308a7fe8e1 Mon Sep 17 00:00:00 2001
+From: Justus Winter <justus@gnupg.org>
+Date: Sat, 30 Apr 2016 00:03:40 +0200
+Subject: [PATCH hurd 1/2] libihash: fix corner case
+
+* libihash/ihash.c (hurd_ihash_locp_find): Set SLOT to NULL if the
+hash table has not been allocated.
+---
+ libihash/ihash.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/libihash/ihash.c b/libihash/ihash.c
+index ae1cf12..c6143a5 100644
+--- a/libihash/ihash.c
++++ b/libihash/ihash.c
+@@ -418,7 +418,10 @@ hurd_ihash_locp_find (hurd_ihash_t ht,
+ int idx;
+
+ if (ht->size == 0)
+- return NULL;
++ {
++ *slot = NULL;
++ return NULL;
++ }
+
+ idx = find_index (ht, key);
+ *slot = &ht->items[idx].value;
+--
+2.1.4
+
diff --git a/debian/patches/ihash0002-libihash-enable-fast-insertions-replacing-tombstones.patch b/debian/patches/ihash0002-libihash-enable-fast-insertions-replacing-tombstones.patch
new file mode 100644
index 00000000..a6bd8e10
--- /dev/null
+++ b/debian/patches/ihash0002-libihash-enable-fast-insertions-replacing-tombstones.patch
@@ -0,0 +1,44 @@
+From 96bc63757121361c4d7904b1664936f8f2426882 Mon Sep 17 00:00:00 2001
+From: Justus Winter <justus@gnupg.org>
+Date: Sat, 30 Apr 2016 00:19:41 +0200
+Subject: [PATCH hurd 2/2] libihash: enable fast insertions replacing
+ tombstones
+
+* libihash/ihash.c (hurd_ihash_locp_add): Also replace tombstones.
+---
+ libihash/ihash.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/libihash/ihash.c b/libihash/ihash.c
+index c6143a5..2fc7093 100644
+--- a/libihash/ihash.c
++++ b/libihash/ihash.c
+@@ -287,17 +287,20 @@ hurd_ihash_locp_add (hurd_ihash_t ht, hurd_ihash_locp_t locp,
+ /* In case of complications, fall back to hurd_ihash_add. */
+ if (ht->size == 0
+ || item == NULL
+- || item->value == _HURD_IHASH_DELETED
+- || ! compare (ht, item->key, key)
++ || (hurd_ihash_value_valid (item->value)
++ && ! compare (ht, item->key, key))
+ || hurd_ihash_get_effective_load (ht) > ht->max_load)
+ return hurd_ihash_add (ht, key, value);
+
+- if (item->value == _HURD_IHASH_EMPTY)
++ if (! hurd_ihash_value_valid (item->value))
+ {
+ item->key = key;
+ ht->nr_items += 1;
+- assert (ht->nr_free > 0);
+- ht->nr_free -= 1;
++ if (item->value == _HURD_IHASH_EMPTY)
++ {
++ assert (ht->nr_free > 0);
++ ht->nr_free -= 1;
++ }
+ }
+ else
+ {
+--
+2.1.4
+
diff --git a/debian/patches/series b/debian/patches/series
index 77b7d8c3..1fbff08b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -46,3 +46,5 @@ fixes0001-utils-settrans-implement-active-translator-stacking.patch
fixes0002-Avoid-superfluous-locking-of-node.patch
fixes0003-fstests-new-micro-benchmark.patch
fix-getroot0001-Fix-privileged-operations-on-trivfs-translated-nodes.patch
+ihash0001-libihash-fix-corner-case.patch
+ihash0002-libihash-enable-fast-insertions-replacing-tombstones.patch