diff options
Diffstat (limited to 'procfs/rootdir.c')
-rw-r--r-- | procfs/rootdir.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/procfs/rootdir.c b/procfs/rootdir.c index 9f860a91..0e7c05c0 100644 --- a/procfs/rootdir.c +++ b/procfs/rootdir.c @@ -667,13 +667,12 @@ rootdir_make_translated_node (void *dir_hook, const void *entry_hook) pthread_spin_lock (&rootdir_translated_node_lock); np = *ops->npp; + if (np != NULL) + netfs_nref (np); pthread_spin_unlock (&rootdir_translated_node_lock); if (np != NULL) - { - netfs_nref (np); - return np; - } + return np; np = procfs_make_node (entry_hook, (void *) entry_hook); if (np == NULL) @@ -686,11 +685,12 @@ rootdir_make_translated_node (void *dir_hook, const void *entry_hook) prev = *ops->npp; if (*ops->npp == NULL) *ops->npp = np; + netfs_nref (*ops->npp); pthread_spin_unlock (&rootdir_translated_node_lock); if (prev != NULL) { - procfs_cleanup (np); + netfs_nrele (np); np = prev; } |