Index: uspace/srv/vfs/vfs.h
===================================================================
--- uspace/srv/vfs/vfs.h	(revision ca093b3073e434d8d83f2624b993aa1f3905e741)
+++ uspace/srv/vfs/vfs.h	(revision 553492bee0faefb2eb530f9618a7ad57db2d179c)
@@ -37,5 +37,4 @@
 #include <adt/list.h>
 #include <fibril_sync.h>
-#include <futex.h>
 #include <sys/types.h>
 #include <devmap.h>
@@ -146,5 +145,5 @@
 } vfs_file_t;
 
-extern futex_t nodes_futex;
+extern fibril_mutex_t nodes_mutex;
 
 extern link_t fs_head;		/**< List of registered file systems. */
@@ -159,5 +158,5 @@
 } plb_entry_t;
 
-extern futex_t plb_futex;	/**< Futex protecting plb and plb_head. */
+extern fibril_mutex_t plb_mutex;/**< Mutex protecting plb and plb_head. */
 extern uint8_t *plb;		/**< Path Lookup Buffer */
 extern link_t plb_head;		/**< List of active PLB entries. */
Index: uspace/srv/vfs/vfs_file.c
===================================================================
--- uspace/srv/vfs/vfs_file.c	(revision ca093b3073e434d8d83f2624b993aa1f3905e741)
+++ uspace/srv/vfs/vfs_file.c	(revision 553492bee0faefb2eb530f9618a7ad57db2d179c)
@@ -58,5 +58,5 @@
  *
  * This resource being per-connection and, in the first place, per-fibril, we
- * don't need to protect it by a futex.
+ * don't need to protect it by a mutex.
  */
 fibril_local vfs_file_t **files = NULL;
Index: uspace/srv/vfs/vfs_lookup.c
===================================================================
--- uspace/srv/vfs/vfs_lookup.c	(revision ca093b3073e434d8d83f2624b993aa1f3905e741)
+++ uspace/srv/vfs/vfs_lookup.c	(revision 553492bee0faefb2eb530f9618a7ad57db2d179c)
@@ -43,5 +43,5 @@
 #include <stdarg.h>
 #include <bool.h>
-#include <futex.h>
+#include <fibril_sync.h>
 #include <adt/list.h>
 #include <vfs/canonify.h>
@@ -49,5 +49,5 @@
 #define min(a, b)  ((a) < (b) ? (a) : (b))
 
-futex_t plb_futex = FUTEX_INITIALIZER;
+FIBRIL_MUTEX_INITIALIZE(plb_mutex);
 link_t plb_head;  /**< PLB entry ring buffer. */
 uint8_t *plb = NULL;
@@ -93,5 +93,5 @@
 	}
 	
-	futex_down(&plb_futex);
+	fibril_mutex_lock(&plb_mutex);
 
 	plb_entry_t entry;
@@ -120,5 +120,5 @@
 			 * The buffer cannot absorb the path.
 			 */
-			futex_up(&plb_futex);
+			fibril_mutex_unlock(&plb_mutex);
 			return ELIMIT;
 		}
@@ -128,5 +128,5 @@
 			 * The buffer cannot absorb the path.
 			 */
-			futex_up(&plb_futex);
+			fibril_mutex_unlock(&plb_mutex);
 			return ELIMIT;
 		}
@@ -147,5 +147,5 @@
 	list_append(&entry.plb_link, &plb_head);
 	
-	futex_up(&plb_futex);
+	fibril_mutex_unlock(&plb_mutex);
 
 	/*
@@ -169,5 +169,5 @@
 	vfs_release_phone(phone);
 	
-	futex_down(&plb_futex);
+	fibril_mutex_lock(&plb_mutex);
 	list_remove(&entry.plb_link);
 	/*
@@ -176,5 +176,5 @@
 	memset(&plb[first], 0, cnt1);
 	memset(plb, 0, cnt2);
-	futex_up(&plb_futex);
+	fibril_mutex_unlock(&plb_mutex);
 
 	if ((rc == EOK) && (result)) {
Index: uspace/srv/vfs/vfs_node.c
===================================================================
--- uspace/srv/vfs/vfs_node.c	(revision ca093b3073e434d8d83f2624b993aa1f3905e741)
+++ uspace/srv/vfs/vfs_node.c	(revision 553492bee0faefb2eb530f9618a7ad57db2d179c)
@@ -39,5 +39,4 @@
 #include <stdlib.h>
 #include <string.h>
-#include <futex.h>
 #include <fibril_sync.h>
 #include <adt/hash_table.h>
@@ -46,6 +45,6 @@
 #include <errno.h>
 
-/** Futex protecting the VFS node hash table. */
-futex_t nodes_futex = FUTEX_INITIALIZER;
+/** Mutex protecting the VFS node hash table. */
+FIBRIL_MUTEX_INITIALIZE(nodes_mutex);
 
 #define NODES_BUCKETS_LOG	8
@@ -90,7 +89,7 @@
 void vfs_node_addref(vfs_node_t *node)
 {
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	_vfs_node_addref(node);
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 }
 
@@ -106,5 +105,5 @@
 	bool free_fs_node = false;
 
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	if (node->refcnt-- == 1) {
 		/*
@@ -122,5 +121,5 @@
 			free_fs_node = true;
 	}
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 
 	if (free_fs_node) {
@@ -162,10 +161,10 @@
 	vfs_node_t *node;
 
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	tmp = hash_table_find(&nodes, key);
 	if (!tmp) {
 		node = (vfs_node_t *) malloc(sizeof(vfs_node_t));
 		if (!node) {
-			futex_up(&nodes_futex);
+			fibril_mutex_unlock(&nodes_mutex);
 			return NULL;
 		}
@@ -194,5 +193,5 @@
 
 	_vfs_node_addref(node);
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 
 	return node;
Index: uspace/srv/vfs/vfs_ops.c
===================================================================
--- uspace/srv/vfs/vfs_ops.c	(revision ca093b3073e434d8d83f2624b993aa1f3905e741)
+++ uspace/srv/vfs/vfs_ops.c	(revision 553492bee0faefb2eb530f9618a7ad57db2d179c)
@@ -44,5 +44,4 @@
 #include <string.h>
 #include <bool.h>
-#include <futex.h>
 #include <fibril_sync.h>
 #include <adt/list.h>
@@ -1132,7 +1131,7 @@
 	 */
 	vfs_node_t *node = vfs_node_get(&lr);
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	node->lnkcnt--;
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 	fibril_rwlock_write_unlock(&namespace_rwlock);
 	vfs_node_put(node);
@@ -1283,7 +1282,7 @@
 			return;
 		}
-		futex_down(&nodes_futex);
+		fibril_mutex_lock(&nodes_mutex);
 		new_node->lnkcnt--;
-		futex_up(&nodes_futex);
+		fibril_mutex_unlock(&nodes_mutex);
 		break;
 	default:
@@ -1305,7 +1304,7 @@
 		return;
 	}
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	old_node->lnkcnt++;
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 	/* Destroy the link for the old name. */
 	rc = vfs_lookup_internal(oldc, L_UNLINK, NULL, NULL);
@@ -1320,7 +1319,7 @@
 		return;
 	}
-	futex_down(&nodes_futex);
+	fibril_mutex_lock(&nodes_mutex);
 	old_node->lnkcnt--;
-	futex_up(&nodes_futex);
+	fibril_mutex_unlock(&nodes_mutex);
 	fibril_rwlock_write_unlock(&namespace_rwlock);
 	vfs_node_put(old_node);
