summaryrefslogtreecommitdiff
path: root/debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch')
-rw-r--r--debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch68
1 files changed, 0 insertions, 68 deletions
diff --git a/debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch b/debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch
deleted file mode 100644
index 2999c041..00000000
--- a/debian/patches/flavio0002-libdiskfs-fix-and-improve-locking-in-nrefs-nput.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 0f6a5081d875051e1b6275096d25332e66f0458c Mon Sep 17 00:00:00 2001
-From: Flavio Cruz <flaviocruz@gmail.com>
-Date: Sun, 14 Feb 2016 18:37:16 -0500
-Subject: [PATCH hurd 2/2] libdiskfs: fix and improve locking in nrefs/nput.
-
-* libnetfs/node-nput.c: Do not unlock the node since it will be unlocked
-later.
-* libnetfs/node-nrele.c: Do not lock the node twice if not needed.
----
- libdiskfs/node-nput.c | 1 -
- libdiskfs/node-nrele.c | 8 ++++++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/libdiskfs/node-nput.c b/libdiskfs/node-nput.c
-index d23c103..d59769b 100644
---- a/libdiskfs/node-nput.c
-+++ b/libdiskfs/node-nput.c
-@@ -56,7 +56,6 @@ diskfs_nput (struct node *np)
- hold a weak reference ourselves. */
- diskfs_try_dropping_softrefs (np);
- }
-- pthread_mutex_unlock (&np->lock);
- }
-
- /* Finally get rid of our reference. */
-diff --git a/libdiskfs/node-nrele.c b/libdiskfs/node-nrele.c
-index d962846..a96d134 100644
---- a/libdiskfs/node-nrele.c
-+++ b/libdiskfs/node-nrele.c
-@@ -28,6 +28,7 @@
- void
- diskfs_nrele (struct node *np)
- {
-+ int locked = FALSE;
- struct references result;
-
- /* While we call the diskfs_try_dropping_softrefs, we need to hold
-@@ -37,6 +38,7 @@ diskfs_nrele (struct node *np)
-
- if (result.hard == 0)
- {
-+ locked = TRUE;
- pthread_mutex_lock (&np->lock);
- diskfs_lost_hardrefs (np);
- if (!np->dn_stat.st_nlink)
-@@ -49,7 +51,6 @@ diskfs_nrele (struct node *np)
- hold a weak reference ourselves. */
- diskfs_try_dropping_softrefs (np);
- }
-- pthread_mutex_unlock (&np->lock);
- }
-
- /* Finally get rid of our reference. */
-@@ -57,7 +58,10 @@ diskfs_nrele (struct node *np)
-
- if (result.hard == 0 && result.weak == 0)
- {
-- pthread_mutex_lock (&np->lock);
-+ if (! locked)
-+ pthread_mutex_lock (&np->lock);
- diskfs_drop_node (np);
- }
-+ else if (locked)
-+ pthread_mutex_unlock (&np->lock);
- }
---
-2.1.4
-