Index: uspace/lib/libfs/libfs.c
===================================================================
--- uspace/lib/libfs/libfs.c	(revision 5fec3551570815cfdb659a817d2ec7cc52c981d4)
+++ uspace/lib/libfs/libfs.c	(revision 7b6d98bd046721ae212cb35e63e70a8936389a7e)
@@ -146,4 +146,5 @@
 		last += PLB_SIZE;
 
+	void *par = NULL;
 	void *cur = ops->root_get();
 	void *tmp = ops->child_get(cur);
@@ -207,4 +208,5 @@
 
 		/* descend one level */
+		par = cur;
 		cur = tmp;
 		tmp = ops->child_get(tmp);
@@ -261,5 +263,5 @@
 	if (lflag & L_DESTROY) {
 		unsigned old_lnkcnt = ops->lnkcnt_get(cur);
-		int res = ops->unlink(cur);
+		int res = ops->unlink(par, cur);
 		ipc_answer_5(rid, (ipcarg_t)res, fs_handle, dev_handle,
 		    ops->index_get(cur), ops->size_get(cur), old_lnkcnt);
Index: uspace/lib/libfs/libfs.h
===================================================================
--- uspace/lib/libfs/libfs.h	(revision 5fec3551570815cfdb659a817d2ec7cc52c981d4)
+++ uspace/lib/libfs/libfs.h	(revision 7b6d98bd046721ae212cb35e63e70a8936389a7e)
@@ -47,5 +47,5 @@
 	void (* destroy)(void *);
 	bool (* link)(void *, void *, const char *);
-	int (* unlink)(void *);
+	int (* unlink)(void *, void *);
 	unsigned long (* index_get)(void *);
 	unsigned long (* size_get)(void *);
