Index: uspace/lib/ext4/libext4_directory.c
===================================================================
--- uspace/lib/ext4/libext4_directory.c	(revision ca3d77a43415e42e7e7f78021189e98802aad60a)
+++ uspace/lib/ext4/libext4_directory.c	(revision 512a7df3617982463f8f8d3b676d7c5ccf0e09c8)
@@ -98,6 +98,6 @@
 		ext4_superblock_t *sb, ext4_directory_entry_ll_t *de)
 {
-	if (ext4_superblock_get_rev_level(sb) == 0 &&
-		    ext4_superblock_get_minor_rev_level(sb) < 5) {
+	if (ext4_superblock_get_rev_level(sb) > 0 ||
+		    ext4_superblock_get_minor_rev_level(sb) >= 5) {
 
 			return de->inode_type;
@@ -111,6 +111,6 @@
 		ext4_superblock_t *sb, ext4_directory_entry_ll_t *de, uint8_t type)
 {
-	if (ext4_superblock_get_rev_level(sb) == 0 &&
-			ext4_superblock_get_minor_rev_level(sb) < 5) {
+	if (ext4_superblock_get_rev_level(sb) > 0 ||
+			ext4_superblock_get_minor_rev_level(sb) >= 5) {
 
 		de->inode_type = type;
@@ -260,4 +260,22 @@
 }
 
+static void ext4_directory_write_entry(ext4_superblock_t *sb,
+		ext4_directory_entry_ll_t *entry, uint16_t entry_len,
+		ext4_inode_ref_t *child, const char *name, size_t name_len)
+{
+	ext4_directory_entry_ll_set_inode(entry, child->index);
+	ext4_directory_entry_ll_set_entry_length(entry, entry_len);
+	ext4_directory_entry_ll_set_name_length(sb, entry, name_len);
+
+	if (ext4_inode_is_type(sb, child->inode, EXT4_INODE_MODE_DIRECTORY)) {
+		ext4_directory_entry_ll_set_inode_type(
+				sb, entry, EXT4_DIRECTORY_FILETYPE_DIR);
+	} else {
+		ext4_directory_entry_ll_set_inode_type(
+				sb, entry, EXT4_DIRECTORY_FILETYPE_REG_FILE);
+	}
+	memcpy(entry->name, name, name_len);
+}
+
 int ext4_directory_add_entry(ext4_filesystem_t *fs, ext4_inode_ref_t * inode_ref,
 		const char *entry_name, ext4_inode_ref_t *child)
@@ -282,7 +300,7 @@
 		if ((entry_inode == 0) && (rec_len >= required_len)) {
 
-			// Don't touch entry length
-			ext4_directory_entry_ll_set_inode(it.current, child->index);
-			ext4_directory_entry_ll_set_name_length(fs->superblock, it.current, name_len);
+
+			ext4_directory_write_entry(fs->superblock, it.current, rec_len,
+					child, entry_name, name_len);
 			it.current_block->dirty = true;
 			return ext4_directory_iterator_fini(&it);
@@ -307,18 +325,6 @@
 				// dirtyness will be set now
 
-				ext4_directory_entry_ll_set_inode(new_entry, child->index);
-				ext4_directory_entry_ll_set_entry_length(new_entry, free_space);
-				ext4_directory_entry_ll_set_name_length(
-						fs->superblock, new_entry, name_len);
-
-				if (ext4_inode_is_type(fs->superblock, child->inode, EXT4_INODE_MODE_DIRECTORY)) {
-					ext4_directory_entry_ll_set_inode_type(
-							fs->superblock, new_entry, EXT4_DIRECTORY_FILETYPE_DIR);
-				} else {
-					ext4_directory_entry_ll_set_inode_type(
-							fs->superblock, new_entry, EXT4_DIRECTORY_FILETYPE_REG_FILE);
-				}
-
-				memcpy(new_entry->name, entry_name, name_len);
+				ext4_directory_write_entry(fs->superblock, new_entry,
+						free_space, child, entry_name, name_len);
 				it.current_block->dirty = true;
 				return ext4_directory_iterator_fini(&it);
@@ -378,8 +384,6 @@
 	ext4_directory_entry_ll_t *block_entry = new_block->data;
 
-	ext4_directory_entry_ll_set_entry_length(block_entry, block_size);
-	ext4_directory_entry_ll_set_inode(block_entry, child->index);
-	ext4_directory_entry_ll_set_name_length(fs->superblock, block_entry, name_len);
-	memcpy(block_entry->name, entry_name, name_len);
+	ext4_directory_write_entry(fs->superblock, block_entry, block_size, 
+	child, entry_name, name_len);
 
 	new_block->dirty = true;
Index: uspace/lib/ext4/libext4_ialloc.c
===================================================================
--- uspace/lib/ext4/libext4_ialloc.c	(revision ca3d77a43415e42e7e7f78021189e98802aad60a)
+++ uspace/lib/ext4/libext4_ialloc.c	(revision 512a7df3617982463f8f8d3b676d7c5ccf0e09c8)
@@ -139,6 +139,4 @@
 	while (bgid < bg_count) {
 
-		EXT4FS_DBG("testing bg \%u", bgid);
-
 		ext4_block_group_ref_t *bg_ref;
 		rc = ext4_filesystem_get_block_group_ref(fs, bgid, &bg_ref);
@@ -169,9 +167,11 @@
 			rc = ext4_bitmap_find_free_bit_and_set(
 					bitmap_block->data, 0, &index_in_group, inodes_in_group);
-//			if (rc == ENOSPC) {
-//				block_put(bitmap_block);
-//				ext4_filesystem_put_block_group_ref(bg_ref);
-//				continue;
-//			}
+
+			// TODO check
+			if (rc == ENOSPC) {
+				block_put(bitmap_block);
+				ext4_filesystem_put_block_group_ref(bg_ref);
+				continue;
+			}
 
 			bitmap_block->dirty = true;
