diff options
Diffstat (limited to 'debian/patches/tmpfs-improve-diskfs_node_iterate.patch')
-rw-r--r-- | debian/patches/tmpfs-improve-diskfs_node_iterate.patch | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/debian/patches/tmpfs-improve-diskfs_node_iterate.patch b/debian/patches/tmpfs-improve-diskfs_node_iterate.patch deleted file mode 100644 index 7b6c05b6..00000000 --- a/debian/patches/tmpfs-improve-diskfs_node_iterate.patch +++ /dev/null @@ -1,62 +0,0 @@ -commit eeaf6d931ce4227c45188dc2b1a9b3ce5e8f10fb -Author: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Wed Apr 30 02:08:41 2014 +0200 - - tmpfs: improve diskfs_node_iterate - - Currently, diskfs_node_iterate iterates twice over all nodes. The - first time only to determine the number of nodes. Simply count them - instead. - - * tmpfs/node.c (all_nodes_nr_items): New variable. - (diskfs_free_node): Decrement all_nodes_nr_items. - (diskfs_node_norefs): Likewise. - (diskfs_cached_lookup): Increment all_nodes_nr_items. - (diskfs_node_iterate): Use all_nodes_nr_items. - -diff --git a/tmpfs/node.c b/tmpfs/node.c -index bc0ad64..18b73be 100644 ---- a/tmpfs/node.c -+++ b/tmpfs/node.c -@@ -30,6 +30,7 @@ unsigned int num_files; - static unsigned int gen; - - struct node *all_nodes; -+static size_t all_nodes_nr_items; - - error_t - diskfs_alloc_node (struct node *dp, mode_t mode, struct node **npp) -@@ -77,6 +78,7 @@ diskfs_free_node (struct node *np, mode_t mode) - *np->dn->hprevp = np->dn->hnext; - if (np->dn->hnext != 0) - np->dn->hnext->dn->hprevp = np->dn->hprevp; -+ all_nodes_nr_items -= 1; - free (np->dn); - np->dn = 0; - -@@ -120,6 +122,7 @@ diskfs_node_norefs (struct node *np) - *np->dn->hprevp = np->dn->hnext; - if (np->dn->hnext != 0) - np->dn->hnext->dn->hprevp = np->dn->hprevp; -+ all_nodes_nr_items -= 1; - np->dn->hnext = 0; - np->dn->hprevp = 0; - } -@@ -186,6 +189,7 @@ diskfs_cached_lookup (ino_t inum, struct node **npp) - dn->hnext->dn->hprevp = &dn->hnext; - dn->hprevp = &all_nodes; - all_nodes = np; -+ all_nodes_nr_items += 1; - pthread_spin_unlock (&diskfs_node_refcnt_lock); - - st = &np->dn_stat; -@@ -233,8 +237,7 @@ diskfs_node_iterate (error_t (*fun) (struct node *)) - diskfs_node_refcnt_lock, but we can't hold this while locking the - individual node locks). */ - -- for (node = all_nodes; node != 0; node = node->dn->hnext) -- num_nodes++; -+ num_nodes = all_nodes_nr_items; - - p = node_list = alloca (num_nodes * sizeof (struct node *)); - for (node = all_nodes; node != 0; node = node->dn->hnext) |