summaryrefslogtreecommitdiff
path: root/netfs.c
diff options
context:
space:
mode:
authorJeremie Koenig <jk@jk.fr.eu.org>2010-08-21 09:25:27 +0000
committerJeremie Koenig <jk@jk.fr.eu.org>2010-08-30 14:19:08 +0200
commit086569ee636d91a820aa23031dda3cb74bab9505 (patch)
tree18d11b4b3ad52294ef5dfba0d3b87843d0ac77cd /netfs.c
parent2c7dcef74c3259d2d5db7a11f5c77d18d3a51e85 (diff)
Handle the ref counter spinlock on cleanup
* netfs.c (netfs_node_norefs): Handle the reference counters spinlock so as to avoid deadlocking on reentry.
Diffstat (limited to 'netfs.c')
-rw-r--r--netfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/netfs.c b/netfs.c
index 6b105f9..e98af75 100644
--- a/netfs.c
+++ b/netfs.c
@@ -163,8 +163,12 @@ error_t netfs_attempt_lookup (struct iouser *user, struct node *dir,
free all its associated storage. */
void netfs_node_norefs (struct node *np)
{
+ spin_unlock (&netfs_node_refcnt_lock);
+
procfs_cleanup (np);
free (np);
+
+ spin_lock (&netfs_node_refcnt_lock);
}