From 21f9f4f0232cceded77f4a622580cce9daa19f98 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sat, 22 Feb 1997 05:17:48 +0000 Subject: (diskfs_S_file_reparent): Don't release a reference to any old shadow_root if it was == NODE. Don't aquire a new reference for NODE. --- libdiskfs/file-reparent.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libdiskfs/file-reparent.c b/libdiskfs/file-reparent.c index 83b4b309..bef01fac 100644 --- a/libdiskfs/file-reparent.c +++ b/libdiskfs/file-reparent.c @@ -43,7 +43,7 @@ diskfs_S_file_reparent (struct protid *cred, mach_port_t parent, if (! err) { /* Remove old shadow root state. */ - if (new_cred->po->shadow_root) + if (new_cred->po->shadow_root && new_cred->po->shadow_root != node) { mutex_lock (&new_cred->po->shadow_root->lock); diskfs_nput (new_cred->po->shadow_root); @@ -53,7 +53,6 @@ diskfs_S_file_reparent (struct protid *cred, mach_port_t parent, /* And install PARENT instead. */ new_cred->po->shadow_root = node; - diskfs_nref (node); new_cred->po->shadow_root_parent = parent; *new = ports_get_right (new_cred); -- cgit v1.2.3