Index: uspace/lib/ext4/libext4_directory.c
===================================================================
--- uspace/lib/ext4/libext4_directory.c	(revision c6a44a377aa14b29e9bdcb1b762ae13e1874492f)
+++ uspace/lib/ext4/libext4_directory.c	(revision 5b16912d1ef099ba464cf42444dec618e36ad4d3)
@@ -260,41 +260,4 @@
 }
 
-int ext4_directory_append_block(ext4_inode_ref_t *inode_ref,
-		uint32_t *fblock, uint32_t *iblock)
-{
-	int rc;
-
-	ext4_superblock_t *sb = inode_ref->fs->superblock;
-
-	// Compute next block index and allocate data block
-	uint64_t inode_size = ext4_inode_get_size(sb, inode_ref->inode);
-	uint32_t block_size = ext4_superblock_get_block_size(sb);
-
-	assert(inode_size % block_size == 0);
-
-	// Logical blocks are numbered from 0
-	uint32_t new_block_idx = inode_size / block_size;
-
-	uint32_t phys_block;
-	rc =  ext4_balloc_alloc_block(inode_ref, &phys_block);
-	if (rc != EOK) {
-		return rc;
-	}
-
-	rc = ext4_filesystem_set_inode_data_block_index(inode_ref, new_block_idx, phys_block);
-	if (rc != EOK) {
-		ext4_balloc_free_block(inode_ref, phys_block);
-		return rc;
-	}
-
-	ext4_inode_set_size(inode_ref->inode, inode_size + block_size);
-
-	inode_ref->dirty = true;
-
-	*fblock = phys_block;
-	*iblock = new_block_idx;
-	return EOK;
-}
-
 void ext4_directory_write_entry(ext4_superblock_t *sb,
 		ext4_directory_entry_ll_t *entry, uint16_t entry_len,
@@ -388,5 +351,5 @@
 	// No free block found - needed to allocate next block
 
-	rc = ext4_directory_append_block(parent, &fblock, &iblock);
+	rc = ext4_filesystem_append_inode_block(parent, &fblock, &iblock);
 	if (rc != EOK) {
 		return rc;
Index: uspace/lib/ext4/libext4_directory.h
===================================================================
--- uspace/lib/ext4/libext4_directory.h	(revision c6a44a377aa14b29e9bdcb1b762ae13e1874492f)
+++ uspace/lib/ext4/libext4_directory.h	(revision 5b16912d1ef099ba464cf42444dec618e36ad4d3)
@@ -58,7 +58,4 @@
 extern int ext4_directory_iterator_fini(ext4_directory_iterator_t *);
 
-extern int ext4_directory_append_block(ext4_inode_ref_t *,
-		uint32_t *, uint32_t *);
-
 extern void ext4_directory_write_entry(ext4_superblock_t *,
 		ext4_directory_entry_ll_t *, uint16_t, ext4_inode_ref_t *,
Index: uspace/lib/ext4/libext4_directory_index.c
===================================================================
--- uspace/lib/ext4/libext4_directory_index.c	(revision c6a44a377aa14b29e9bdcb1b762ae13e1874492f)
+++ uspace/lib/ext4/libext4_directory_index.c	(revision 5b16912d1ef099ba464cf42444dec618e36ad4d3)
@@ -523,9 +523,10 @@
 	}
 
-	qsort(sort_array, idx, sizeof(ext4_dx_sort_entry_t), ext4_directory_dx_entry_comparator, NULL);
+	qsort(sort_array, idx, sizeof(ext4_dx_sort_entry_t),
+			ext4_directory_dx_entry_comparator, NULL);
 
 	uint32_t new_fblock;
 	uint32_t new_iblock;
-	rc = ext4_directory_append_block(inode_ref, &new_fblock, &new_iblock);
+	rc = ext4_filesystem_append_inode_block(inode_ref, &new_fblock, &new_iblock);
 	if (rc != EOK) {
 		free(sort_array);
@@ -651,5 +652,6 @@
 		uint32_t new_fblock;
 		uint32_t new_iblock;
-		rc =  ext4_directory_append_block(inode_ref, &new_fblock, &new_iblock);
+		rc =  ext4_filesystem_append_inode_block(
+				inode_ref, &new_fblock, &new_iblock);
 		if (rc != EOK) {
 			return rc;
Index: uspace/lib/ext4/libext4_filesystem.c
===================================================================
--- uspace/lib/ext4/libext4_filesystem.c	(revision c6a44a377aa14b29e9bdcb1b762ae13e1874492f)
+++ uspace/lib/ext4/libext4_filesystem.c	(revision 5b16912d1ef099ba464cf42444dec618e36ad4d3)
@@ -887,4 +887,44 @@
 }
 
+int ext4_filesystem_append_inode_block(ext4_inode_ref_t *inode_ref,
+		uint32_t *fblock, uint32_t *iblock)
+{
+
+	// TODO append to extent
+
+	int rc;
+
+	ext4_superblock_t *sb = inode_ref->fs->superblock;
+
+	// Compute next block index and allocate data block
+	uint64_t inode_size = ext4_inode_get_size(sb, inode_ref->inode);
+	uint32_t block_size = ext4_superblock_get_block_size(sb);
+
+	assert(inode_size % block_size == 0);
+
+	// Logical blocks are numbered from 0
+	uint32_t new_block_idx = inode_size / block_size;
+
+	uint32_t phys_block;
+	rc =  ext4_balloc_alloc_block(inode_ref, &phys_block);
+	if (rc != EOK) {
+		return rc;
+	}
+
+	rc = ext4_filesystem_set_inode_data_block_index(inode_ref, new_block_idx, phys_block);
+	if (rc != EOK) {
+		ext4_balloc_free_block(inode_ref, phys_block);
+		return rc;
+	}
+
+	ext4_inode_set_size(inode_ref->inode, inode_size + block_size);
+
+	inode_ref->dirty = true;
+
+	*fblock = phys_block;
+	*iblock = new_block_idx;
+	return EOK;
+}
+
 int ext4_filesystem_add_orphan(ext4_inode_ref_t *inode_ref)
 {
Index: uspace/lib/ext4/libext4_filesystem.h
===================================================================
--- uspace/lib/ext4/libext4_filesystem.h	(revision c6a44a377aa14b29e9bdcb1b762ae13e1874492f)
+++ uspace/lib/ext4/libext4_filesystem.h	(revision 5b16912d1ef099ba464cf42444dec618e36ad4d3)
@@ -57,4 +57,7 @@
 extern int ext4_filesystem_release_inode_block(
 		ext4_inode_ref_t *, uint32_t);
+extern int ext4_filesystem_append_inode_block(ext4_inode_ref_t *,
+		uint32_t *, uint32_t *);
+
 extern int ext4_filesystem_add_orphan(ext4_inode_ref_t *);
 extern int ext4_filesystem_delete_orphan(ext4_inode_ref_t *);
