Index: uspace/srv/fs/tmpfs/tmpfs.h
===================================================================
--- uspace/srv/fs/tmpfs/tmpfs.h	(revision 3ca7059426b2e8789889802646245c820bdb516d)
+++ uspace/srv/fs/tmpfs/tmpfs.h	(revision 7b6d98bd046721ae212cb35e63e70a8936389a7e)
@@ -46,5 +46,4 @@
 	unsigned long index;	/**< TMPFS node index. */
 	link_t dh_link;		/**< Dentries hash table link. */
-	struct tmpfs_dentry *parent;
 	struct tmpfs_dentry *sibling;
 	struct tmpfs_dentry *child;
Index: uspace/srv/fs/tmpfs/tmpfs_ops.c
===================================================================
--- uspace/srv/fs/tmpfs/tmpfs_ops.c	(revision 3ca7059426b2e8789889802646245c820bdb516d)
+++ uspace/srv/fs/tmpfs/tmpfs_ops.c	(revision 7b6d98bd046721ae212cb35e63e70a8936389a7e)
@@ -71,5 +71,5 @@
 static void *tmpfs_create_node(int);
 static bool tmpfs_link_node(void *, void *, const char *);
-static int tmpfs_unlink_node(void *);
+static int tmpfs_unlink_node(void *, void *);
 static void tmpfs_destroy_node(void *);
 
@@ -171,5 +171,4 @@
 {
 	dentry->index = 0;
-	dentry->parent = NULL;
 	dentry->sibling = NULL;
 	dentry->child = NULL;
@@ -251,35 +250,34 @@
 		parentp->child = childp;
 	}
-	childp->parent = parentp;
 
 	return true;
 }
 
-int tmpfs_unlink_node(void *nodeptr)
-{
-	tmpfs_dentry_t *dentry = (tmpfs_dentry_t *)nodeptr;
-
-	if (dentry->child)
+int tmpfs_unlink_node(void *prnt, void *chld)
+{
+	tmpfs_dentry_t *parentp = (tmpfs_dentry_t *)prnt;
+	tmpfs_dentry_t *childp = (tmpfs_dentry_t *)chld;
+
+	if (!parentp)
+		return EBUSY;
+
+	if (childp->child)
 		return ENOTEMPTY;
 
-	if (!dentry->parent)
-		return EBUSY;
-
-	if (dentry->parent->child == dentry) {
-		dentry->parent->child = dentry->sibling;
+	if (parentp->child == childp) {
+		parentp->child = childp->sibling;
 	} else {
 		/* TODO: consider doubly linked list for organizing siblings. */
-		tmpfs_dentry_t *tmp = dentry->parent->child;
-		while (tmp->sibling != dentry)
+		tmpfs_dentry_t *tmp = parentp->child;
+		while (tmp->sibling != childp)
 			tmp = tmp->sibling;
-		tmp->sibling = dentry->sibling;
-	}
-	dentry->sibling = NULL;
-	dentry->parent = NULL;
-
-	free(dentry->name);
-	dentry->name = NULL;
-
-	dentry->lnkcnt--;
+		tmp->sibling = childp->sibling;
+	}
+	childp->sibling = NULL;
+
+	free(childp->name);
+	childp->name = NULL;
+
+	childp->lnkcnt--;
 
 	return EOK;
