summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdiskfs/node-drop.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/libdiskfs/node-drop.c b/libdiskfs/node-drop.c
index 9947beef..1e0c1236 100644
--- a/libdiskfs/node-drop.c
+++ b/libdiskfs/node-drop.c
@@ -54,6 +54,8 @@ diskfs_drop_node (struct node *np)
return;
}
+ assert (np->dn_stat.st_size == 0);
+
savemode = np->dn_stat.st_mode;
np->dn_stat.st_mode = 0;
np->dn_stat.st_rdev = 0;
@@ -61,16 +63,6 @@ diskfs_drop_node (struct node *np)
diskfs_node_update (np, 1);
diskfs_free_node (np, savemode);
}
- else if (np->sockaddr)
- /* If NP is a socket naming point, we can't drop it until it actually
- gets unlinked. Unfortunately we have no way of knowing whether the
- server is still alive. This will result in a node with zero refs; I'm
- not sure whether that will cause lossage.... XXX */
- {
- spin_unlock (&diskfs_node_refcnt_lock);
- mutex_unlock (&np->lock);
- return;
- }
else
diskfs_node_update (np, diskfs_synchronous);
@@ -86,10 +78,8 @@ diskfs_drop_node (struct node *np)
free (dm);
}
}
- if (np->sockaddr)
- mach_port_deallocate (mach_task_self (), np->sockaddr);
+ assert (!np->sockaddr);
- _diskfs_purge_cache_deletion (np);
diskfs_node_norefs (np);
spin_unlock (&diskfs_node_refcnt_lock);
}