summaryrefslogtreecommitdiff
path: root/debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch')
-rw-r--r--debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch149
1 files changed, 0 insertions, 149 deletions
diff --git a/debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch b/debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch
deleted file mode 100644
index 3923896a..00000000
--- a/debian/patches/0003-trans-fakeroot-use-fat-nodes-to-simplify-the-node-ca.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 4053f08472930d523d2f0392e565f0650eb32802 Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Sun, 18 May 2014 13:45:14 +0200
-Subject: [PATCH 03/27] trans/fakeroot: use fat nodes to simplify the node
- cache
-
-Previously, fakeroot stored netnodes in the hash table. But we are
-not interested in a cache for netnodes, we need a node cache. So
-fakeroot kept pointers to the associated node object in each netnode
-object.
-
-Use fat netfs nodes, which combine node and netnode objects.
-
-* trans/fakeroot.c (struct netnode): Remove np.
-(idport_ihash): Fix ihash location pointer offset.
-(new_node): Allocate fat nodes, store the node pointer in the hash
-table.
-(netfs_node_norefs): Adjust accordingly.
-(netfs_S_dir_lookup): Likewise.
----
- trans/fakeroot.c | 36 ++++++++++++------------------------
- 1 file changed, 12 insertions(+), 24 deletions(-)
-
-diff --git a/trans/fakeroot.c b/trans/fakeroot.c
-index 4175b55..59f8a86 100644
---- a/trans/fakeroot.c
-+++ b/trans/fakeroot.c
-@@ -47,7 +47,6 @@ static auth_t fakeroot_auth_port;
-
- struct netnode
- {
-- struct node *np; /* our node */
- hurd_ihash_locp_t idport_locp;/* easy removal pointer in idport ihash */
- mach_port_t idport; /* port from io_identity */
- int openmodes; /* O_READ | O_WRITE | O_EXEC */
-@@ -64,7 +63,8 @@ struct netnode
-
- pthread_mutex_t idport_ihash_lock = PTHREAD_MUTEX_INITIALIZER;
- struct hurd_ihash idport_ihash
-- = HURD_IHASH_INITIALIZER (offsetof (struct netnode, idport_locp));
-+= HURD_IHASH_INITIALIZER (sizeof (struct node)
-+ + offsetof (struct netnode, idport_locp));
-
-
- /* Make a new virtual node. Always consumes the ports. If
-@@ -74,8 +74,9 @@ new_node (file_t file, mach_port_t idport, int locked, int openmodes,
- struct node **np)
- {
- error_t err;
-- struct netnode *nn = calloc (1, sizeof *nn);
-- if (nn == 0)
-+ struct netnode *nn;
-+ *np = netfs_make_node_alloc (sizeof *nn);
-+ if (*np == 0)
- {
- mach_port_deallocate (mach_task_self (), file);
- if (idport != MACH_PORT_NULL)
-@@ -84,6 +85,7 @@ new_node (file_t file, mach_port_t idport, int locked, int openmodes,
- pthread_mutex_unlock (&idport_ihash_lock);
- return ENOMEM;
- }
-+ nn = netfs_node_netnode (*np);
- nn->file = file;
- nn->openmodes = openmodes;
- if (idport != MACH_PORT_NULL)
-@@ -97,35 +99,26 @@ new_node (file_t file, mach_port_t idport, int locked, int openmodes,
- if (err)
- {
- mach_port_deallocate (mach_task_self (), file);
-- free (nn);
-+ free (*np);
- return err;
- }
- }
-
- if (!locked)
- pthread_mutex_lock (&idport_ihash_lock);
-- err = hurd_ihash_add (&idport_ihash, nn->idport, nn);
-+ err = hurd_ihash_add (&idport_ihash, nn->idport, *np);
- if (err)
- goto lose;
-
-- *np = nn->np = netfs_make_node (nn);
-- if (*np == 0)
-- {
-- err = ENOMEM;
-- goto lose_hash;
-- }
--
- pthread_mutex_lock (&(*np)->lock);
- pthread_mutex_unlock (&idport_ihash_lock);
- return 0;
-
-- lose_hash:
-- hurd_ihash_locp_remove (&idport_ihash, nn->idport_locp);
- lose:
- pthread_mutex_unlock (&idport_ihash_lock);
- mach_port_deallocate (mach_task_self (), nn->idport);
- mach_port_deallocate (mach_task_self (), file);
-- free (nn);
-+ free (*np);
- return err;
- }
-
-@@ -161,8 +154,6 @@ set_faked_attribute (struct node *np, unsigned int faked)
- void
- netfs_node_norefs (struct node *np)
- {
-- assert (np->nn->np == np);
--
- pthread_mutex_unlock (&np->lock);
- pthread_spin_unlock (&netfs_node_refcnt_lock);
-
-@@ -172,7 +163,6 @@ netfs_node_norefs (struct node *np)
-
- mach_port_deallocate (mach_task_self (), np->nn->file);
- mach_port_deallocate (mach_task_self (), np->nn->idport);
-- free (np->nn);
- free (np);
-
- pthread_spin_lock (&netfs_node_refcnt_lock);
-@@ -358,13 +348,12 @@ netfs_S_dir_lookup (struct protid *diruser,
- refcount lock so that, if a node is found, its reference counter cannot
- drop to 0 before we get our own reference. */
- pthread_spin_lock (&netfs_node_refcnt_lock);
-- struct netnode *nn = hurd_ihash_find (&idport_ihash, idport);
-- if (nn != NULL)
-+ np = hurd_ihash_find (&idport_ihash, idport);
-+ if (np != NULL)
- {
-- assert (nn->np->nn == nn);
- /* We already know about this node. */
-
-- if (nn->np->references == 0)
-+ if (np->references == 0)
- {
- /* But it might be in the process of being released. If so,
- unlock the hash table to give the node a chance to actually
-@@ -376,7 +365,6 @@ netfs_S_dir_lookup (struct protid *diruser,
- }
-
- /* Otherwise, reference it right away. */
-- np = nn->np;
- np->references++;
- pthread_spin_unlock (&netfs_node_refcnt_lock);
-
---
-2.0.0.rc2
-