summaryrefslogtreecommitdiff
path: root/debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch')
-rw-r--r--debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch116
1 files changed, 0 insertions, 116 deletions
diff --git a/debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch b/debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch
deleted file mode 100644
index a6d907bd..00000000
--- a/debian/patches/0009-libnetfs-add-netfs_make_node_alloc-to-allocate-fat-n.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From cc83084c99d1f7d02b35e3e5a6e707fa1105f32b Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Sun, 18 May 2014 13:34:12 +0200
-Subject: [PATCH 09/11] libnetfs: add netfs_make_node_alloc to allocate fat
- nodes
-
-libnetfs has two kind of nodes, struct node and struct netnode.
-struct node is used to store libnetfs specific data, while struct
-netnode contains user supplied data. Previously, both objects were
-allocated separatly, and a pointer from the node to the netnode
-provided a mapping from the former to the latter.
-
-Provide a function netfs_make_node_alloc that allocates both nodes in
-a contiguous region.
-
-This reduces the memory allocation overhead when creating nodes. It
-also makes the relation between node and netnode a simple offset
-calculation. Provide two functions to compute the netnode address
-from the node address and vice-versa.
-
-Most notably, this makes implementing a cache on top of libnetfs
-easier. Auxiliary data for the cache can be stored in the
-user-defined netnode, and the fat node can be used as the value.
-
-* libnetfs/make-node.c (init_node): Move initialization here.
-(netfs_make_node): Use init_node.
-(netfs_make_node_alloc): New function to allocate fat nodes.
-* libnetfs/netfs.h (netfs_make_node_alloc): New declaration.
-(netfs_node_netnode): Compute netnode address from node address.
-(netfs_netnode_node): And vice-versa.
----
- libnetfs/make-node.c | 29 +++++++++++++++++++++++------
- libnetfs/netfs.h | 22 ++++++++++++++++++++++
- 2 files changed, 45 insertions(+), 6 deletions(-)
-
-diff --git a/libnetfs/make-node.c b/libnetfs/make-node.c
-index f20ada1..6bd8109 100644
---- a/libnetfs/make-node.c
-+++ b/libnetfs/make-node.c
-@@ -21,13 +21,9 @@
- #include "netfs.h"
- #include <hurd/fshelp.h>
-
--struct node *
--netfs_make_node (struct netnode *nn)
-+static struct node *
-+init_node (struct node *np, struct netnode *nn)
- {
-- struct node *np = malloc (sizeof (struct node));
-- if (! np)
-- return NULL;
--
- np->nn = nn;
-
- pthread_mutex_init (&np->lock, NULL);
-@@ -40,3 +36,24 @@ netfs_make_node (struct netnode *nn)
-
- return np;
- }
-+
-+struct node *
-+netfs_make_node (struct netnode *nn)
-+{
-+ struct node *np = malloc (sizeof (struct node));
-+ if (! np)
-+ return NULL;
-+
-+ return init_node (np, nn);
-+}
-+
-+struct node *
-+netfs_make_node_alloc (size_t size)
-+{
-+ struct node *np = malloc (sizeof (struct node) + size);
-+
-+ if (np == NULL)
-+ return NULL;
-+
-+ return init_node (np, netfs_node_netnode (np));
-+}
-diff --git a/libnetfs/netfs.h b/libnetfs/netfs.h
-index aef4a3d..e3c3b3e 100644
---- a/libnetfs/netfs.h
-+++ b/libnetfs/netfs.h
-@@ -372,6 +372,28 @@ extern int netfs_maxsymlinks;
- If an error occurs, NULL is returned. */
- struct node *netfs_make_node (struct netnode *);
-
-+/* Create a new node structure. Also allocate SIZE bytes for the
-+ netnode. The address of the netnode can be obtained using
-+ netfs_node_netnode. The new node will have one hard reference and
-+ no light references. If an error occurs, NULL is returned. */
-+struct node *netfs_make_node_alloc (size_t size);
-+
-+/* Return the address of the netnode for NODE. NODE must have been
-+ allocated using netfs_make_node_alloc. */
-+static inline struct netnode *
-+netfs_node_netnode (struct node *node)
-+{
-+ return (struct netnode *) ((char *) node + sizeof (struct node));
-+}
-+
-+/* Return the address of the node for NETNODE. NETNODE must have been
-+ allocated using netfs_make_node_alloc. */
-+static inline struct node *
-+netfs_netnode_node (struct netnode *netnode)
-+{
-+ return (struct node *) ((char *) netnode - sizeof (struct node));
-+}
-+
- /* Whenever node->references is to be touched, this lock must be
- held. Cf. netfs_nrele, netfs_nput, netfs_nref and netfs_drop_node. */
- extern pthread_spinlock_t netfs_node_refcnt_lock;
---
-2.0.0.rc2
-