summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/patches/flavio0001-Use-refcount_t-for-peropen-reference-counting-in-lib.patch167
-rw-r--r--debian/patches/series1
2 files changed, 0 insertions, 168 deletions
diff --git a/debian/patches/flavio0001-Use-refcount_t-for-peropen-reference-counting-in-lib.patch b/debian/patches/flavio0001-Use-refcount_t-for-peropen-reference-counting-in-lib.patch
deleted file mode 100644
index 32bf8562..00000000
--- a/debian/patches/flavio0001-Use-refcount_t-for-peropen-reference-counting-in-lib.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From afea5285b0e40b68f97b47f0f0edc471b554fb34 Mon Sep 17 00:00:00 2001
-From: Flavio Cruz <flaviocruz@gmail.com>
-Date: Sun, 7 Feb 2016 01:33:00 -0500
-Subject: [PATCH hurd] Use refcount_t for peropen reference counting in
- libnetfs.
-
-* libnetfs/netfs.h: Use refcount_t.
-* libnetfs/make-peropen.c: Initialize to 1 with refcount_init just like in libdiskfs.
-* libnetfs/make-protid.c: Don't increment the count here. Do it like libdiskfs.
-* libnetfs/io-duplicate.c: Add refcount_ref since netfs_make_protid no longer increments the refcount.
-* libnetfs/io-reauthenticate.c: Likewise.
-* libnetfs/io-restrict-auth.c: Likewise.
-* libnetfs/release-peropen.c: Dereference without locking.
----
- libnetfs/io-duplicate.c | 1 +
- libnetfs/io-reauthenticate.c | 2 ++
- libnetfs/io-restrict-auth.c | 2 ++
- libnetfs/make-peropen.c | 2 +-
- libnetfs/make-protid.c | 1 -
- libnetfs/netfs.h | 2 +-
- libnetfs/release-peropen.c | 38 ++++++++++++++++++--------------------
- 7 files changed, 25 insertions(+), 23 deletions(-)
-
-diff --git a/libnetfs/io-duplicate.c b/libnetfs/io-duplicate.c
-index b2c3a3a..263f9e8 100644
---- a/libnetfs/io-duplicate.c
-+++ b/libnetfs/io-duplicate.c
-@@ -34,6 +34,7 @@ netfs_S_io_duplicate (struct protid *user,
- if (err)
- return err;
-
-+ refcount_ref (&user->po->refcnt);
- pthread_mutex_lock (&user->po->np->lock);
- newpi = netfs_make_protid (user->po, clone);
- *newport = ports_get_right (newpi);
-diff --git a/libnetfs/io-reauthenticate.c b/libnetfs/io-reauthenticate.c
-index 8ff4182..b2d4a44 100644
---- a/libnetfs/io-reauthenticate.c
-+++ b/libnetfs/io-reauthenticate.c
-@@ -34,12 +34,14 @@ netfs_S_io_reauthenticate (struct protid *user, mach_port_t rend_port)
- /* This routine must carefully ignore EINTR because we
- are a simpleroutine, so callers won't know to restart. */
-
-+ refcount_ref (&user->po->refcnt);
- pthread_mutex_lock (&user->po->np->lock);
- do
- newpi = netfs_make_protid (user->po, 0);
- while (! newpi && errno == EINTR);
- if (! newpi)
- {
-+ refcount_deref (&user->po->refcnt);
- pthread_mutex_unlock (&user->po->np->lock);
- return errno;
- }
-diff --git a/libnetfs/io-restrict-auth.c b/libnetfs/io-restrict-auth.c
-index 0c3403d..79b7d09 100644
---- a/libnetfs/io-restrict-auth.c
-+++ b/libnetfs/io-restrict-auth.c
-@@ -43,6 +43,7 @@ netfs_S_io_restrict_auth (struct protid *user,
- return err;
-
- pthread_mutex_lock (&user->po->np->lock);
-+ refcount_ref (&user->po->refcnt);
- newpi = netfs_make_protid (user->po, new_user);
- if (newpi)
- {
-@@ -52,6 +53,7 @@ netfs_S_io_restrict_auth (struct protid *user,
- }
- else
- {
-+ refcount_deref (&user->po->refcnt);
- pthread_mutex_unlock (&user->po->np->lock);
- iohelp_free_iouser (new_user);
- err = ENOMEM;
-diff --git a/libnetfs/make-peropen.c b/libnetfs/make-peropen.c
-index f7be58b..413e914 100644
---- a/libnetfs/make-peropen.c
-+++ b/libnetfs/make-peropen.c
-@@ -31,7 +31,7 @@ netfs_make_peropen (struct node *np, int flags, struct peropen *context)
-
- po->filepointer = 0;
- po->lock_status = LOCK_UN;
-- po->refcnt = 0;
-+ refcount_init (&po->refcnt, 1);
- po->openstat = flags;
- po->np = np;
- po->path = NULL;
-diff --git a/libnetfs/make-protid.c b/libnetfs/make-protid.c
-index bf18283..995ac1e 100644
---- a/libnetfs/make-protid.c
-+++ b/libnetfs/make-protid.c
-@@ -36,7 +36,6 @@ netfs_make_protid (struct peropen *po, struct iouser *cred)
- if (errno)
- return 0;
-
-- po->refcnt++;
- pi->po = po;
- pi->user = cred;
- pi->shared_object = MACH_PORT_NULL;
-diff --git a/libnetfs/netfs.h b/libnetfs/netfs.h
-index fbe2c60..3f94ccd 100644
---- a/libnetfs/netfs.h
-+++ b/libnetfs/netfs.h
-@@ -51,7 +51,7 @@ struct peropen
- {
- loff_t filepointer;
- int lock_status;
-- int refcnt;
-+ refcount_t refcnt;
- int openstat;
-
- struct node *np;
-diff --git a/libnetfs/release-peropen.c b/libnetfs/release-peropen.c
-index c206b43..01af97d 100644
---- a/libnetfs/release-peropen.c
-+++ b/libnetfs/release-peropen.c
-@@ -24,29 +24,27 @@
- void
- netfs_release_peropen (struct peropen *po)
- {
-+ if (refcount_deref (&po->refcnt) > 0)
-+ return;
-+
- pthread_mutex_lock (&po->np->lock);
-- if (--po->refcnt)
-- pthread_mutex_unlock (&po->np->lock);
-- else
-- {
-- if (po->root_parent)
-- mach_port_deallocate (mach_task_self (), po->root_parent);
-+ if (po->root_parent)
-+ mach_port_deallocate (mach_task_self (), po->root_parent);
-
-- if (po->shadow_root && po->shadow_root != po->np)
-- {
-- pthread_mutex_lock (&po->shadow_root->lock);
-- netfs_nput (po->shadow_root);
-- }
-- if (po->shadow_root_parent)
-- mach_port_deallocate (mach_task_self (), po->shadow_root_parent);
-+ if (po->shadow_root && po->shadow_root != po->np)
-+ {
-+ pthread_mutex_lock (&po->shadow_root->lock);
-+ netfs_nput (po->shadow_root);
-+ }
-+ if (po->shadow_root_parent)
-+ mach_port_deallocate (mach_task_self (), po->shadow_root_parent);
-
-- if (po->lock_status != LOCK_UN)
-- fshelp_acquire_lock (&po->np->userlock, &po->lock_status,
-- &po->np->lock, LOCK_UN);
-+ if (po->lock_status != LOCK_UN)
-+ fshelp_acquire_lock (&po->np->userlock, &po->lock_status,
-+ &po->np->lock, LOCK_UN);
-
-- netfs_nput (po->np);
-+ netfs_nput (po->np);
-
-- free (po->path);
-- free (po);
-- }
-+ free (po->path);
-+ free (po);
- }
---
-2.1.4
-
diff --git a/debian/patches/series b/debian/patches/series
index e6a91313..ddbfc2a4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -39,4 +39,3 @@ translators-list0004-add-iteration.patch
nodeihash0001-xxx-fix-node-iteration.patch
fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch
gpg0001-trans-add-transparent-GnuPG-translator.patch
-flavio0001-Use-refcount_t-for-peropen-reference-counting-in-lib.patch