Index: uspace/lib/libfs/libfs.c
===================================================================
--- uspace/lib/libfs/libfs.c	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
+++ uspace/lib/libfs/libfs.c	(revision 8bb129d69310eead42c22239971f5e6480175e55)
@@ -149,7 +149,7 @@
 		last += PLB_SIZE;
 
-	void *par = NULL;
-	void *cur = ops->root_get(dev_handle);
-	void *tmp = NULL;
+	fs_node_t *par = NULL;
+	fs_node_t *cur = ops->root_get(dev_handle);
+	fs_node_t *tmp = NULL;
 
 	if (ops->plb_get_char(next) == '/')
@@ -190,18 +190,17 @@
 					goto out;
 				}
-				void *nodep;
+				fs_node_t *fn;
 				if (lflag & L_CREATE)
-					nodep = ops->create(dev_handle, lflag);
+					fn = ops->create(dev_handle, lflag);
 				else
-					nodep = ops->node_get(dev_handle,
+					fn = ops->node_get(dev_handle,
 					    index);
-				if (nodep) {
+				if (fn) {
 					int rc;
 
-					rc = ops->link(cur, nodep, component);
+					rc = ops->link(cur, fn, component);
 					if (rc != EOK) {
 						if (lflag & L_CREATE) {
-							(void)ops->destroy(
-							    nodep);
+							(void)ops->destroy(fn);
 						}
 						ipc_answer_0(rid, rc);
@@ -209,8 +208,8 @@
 						ipc_answer_5(rid, EOK,
 						    fs_handle, dev_handle,
-						    ops->index_get(nodep),
-						    ops->size_get(nodep),
-						    ops->lnkcnt_get(nodep));
-						ops->node_put(nodep);
+						    ops->index_get(fn),
+						    ops->size_get(fn),
+						    ops->lnkcnt_get(fn));
+						ops->node_put(fn);
 					}
 				} else {
@@ -264,24 +263,24 @@
 			component[len] = '\0';
 				
-			void *nodep;
+			fs_node_t *fn;
 			if (lflag & L_CREATE)
-				nodep = ops->create(dev_handle, lflag);
+				fn = ops->create(dev_handle, lflag);
 			else
-				nodep = ops->node_get(dev_handle, index);
-			if (nodep) {
+				fn = ops->node_get(dev_handle, index);
+			if (fn) {
 				int rc;
 
-				rc = ops->link(cur, nodep, component);
+				rc = ops->link(cur, fn, component);
 				if (rc != EOK) {
 					if (lflag & L_CREATE)
-						(void)ops->destroy(nodep);
+						(void)ops->destroy(fn);
 					ipc_answer_0(rid, rc);
 				} else {
 					ipc_answer_5(rid, EOK,
 					    fs_handle, dev_handle,
-					    ops->index_get(nodep),
-					    ops->size_get(nodep),
-					    ops->lnkcnt_get(nodep));
-					ops->node_put(nodep);
+					    ops->index_get(fn),
+					    ops->size_get(fn),
+					    ops->lnkcnt_get(fn));
+					ops->node_put(fn);
 				}
 			} else {
Index: uspace/lib/libfs/libfs.h
===================================================================
--- uspace/lib/libfs/libfs.h	(revision fcd7053c1b7bca76e2258a6b2b5ce5b3b416f00f)
+++ uspace/lib/libfs/libfs.h	(revision 8bb129d69310eead42c22239971f5e6480175e55)
@@ -43,19 +43,23 @@
 
 typedef struct {
-	void * (* match)(void *, const char *);
-	void * (* node_get)(dev_handle_t, fs_index_t);
-	void (* node_put)(void *);
-	void * (* create)(dev_handle_t, int);
-	int (* destroy)(void *);
-	int (* link)(void *, void *, const char *);
-	int (* unlink)(void *, void *);
-	fs_index_t (* index_get)(void *);
-	size_t (* size_get)(void *);
-	unsigned (* lnkcnt_get)(void *);
-	bool (* has_children)(void *);
-	void *(* root_get)(dev_handle_t);
+	void *data;	/**< Data of the file system implementation. */
+} fs_node_t;
+
+typedef struct {
+	fs_node_t * (* match)(fs_node_t *, const char *);
+	fs_node_t * (* node_get)(dev_handle_t, fs_index_t);
+	void (* node_put)(fs_node_t *);
+	fs_node_t * (* create)(dev_handle_t, int);
+	int (* destroy)(fs_node_t *);
+	int (* link)(fs_node_t *, fs_node_t *, const char *);
+	int (* unlink)(fs_node_t *, fs_node_t *);
+	fs_index_t (* index_get)(fs_node_t *);
+	size_t (* size_get)(fs_node_t *);
+	unsigned (* lnkcnt_get)(fs_node_t *);
+	bool (* has_children)(fs_node_t *);
+	fs_node_t *(* root_get)(dev_handle_t);
 	char (* plb_get_char)(unsigned pos);	
-	bool (* is_directory)(void *);
-	bool (* is_file)(void *);
+	bool (* is_directory)(fs_node_t *);
+	bool (* is_file)(fs_node_t *);
 } libfs_ops_t;
 
