Index: uspace/srv/vfs/vfs_file.c
===================================================================
--- uspace/srv/vfs/vfs_file.c	(revision 493853ecc88c704ed1dadcd05ad985fb28e0a32c)
+++ uspace/srv/vfs/vfs_file.c	(revision ac23b9d34a503f0c4384b459c43934f4e58ede18)
@@ -79,6 +79,8 @@
 int vfs_fd_alloc(void)
 {
-	int i;
-
+	if (!vfs_files_init())
+		return ENOMEM;
+	
+	unsigned int i;
 	for (i = 0; i < MAX_OPEN_FILES; i++) {
 		if (!files[i]) {
@@ -86,10 +88,12 @@
 			if (!files[i])
 				return ENOMEM;
+			
 			memset(files[i], 0, sizeof(vfs_file_t));
 			futex_initialize(&files[i]->lock, 1);
 			vfs_file_addref(files[i]);
-			return i;
+			return (int) i;
 		}
 	}
+	
 	return EMFILE;
 }
@@ -104,8 +108,13 @@
 int vfs_fd_free(int fd)
 {
+	if (!vfs_files_init())
+		return ENOMEM;
+	
 	if ((fd < 0) || (fd >= MAX_OPEN_FILES) || (files[fd] == NULL))
 		return EBADF;
+	
 	vfs_file_delref(files[fd]);
 	files[fd] = NULL;
+	
 	return EOK;
 }
@@ -151,6 +160,10 @@
 vfs_file_t *vfs_file_get(int fd)
 {
+	if (!vfs_files_init())
+		return NULL;
+	
 	if ((fd >= 0) && (fd < MAX_OPEN_FILES))
 		return files[fd];
+	
 	return NULL;
 }
@@ -158,3 +171,3 @@
 /**
  * @}
- */ 
+ */
