Index: uspace/lib/ext4/libext4_extent.c
===================================================================
--- uspace/lib/ext4/libext4_extent.c	(revision 6d52126bbac32377d4a8964f4dd007b8d7933d26)
+++ uspace/lib/ext4/libext4_extent.c	(revision acd869e9d6dfc10604382d2c9d33fc6ae253c156)
@@ -36,5 +36,31 @@
  */
 
+#include <byteorder.h>
+#include "libext4_extent.h"
 
+uint16_t ext4_extent_header_get_magic(ext4_extent_header_t *header)
+{
+	return uint16_t_le2host(header->magic);
+}
+
+uint16_t ext4_extent_header_get_entries_count(ext4_extent_header_t *header)
+{
+	return uint16_t_le2host(header->entries_count);
+}
+
+uint16_t ext4_extent_header_get_max_entries_count(ext4_extent_header_t *header)
+{
+	return uint16_t_le2host(header->max_entries_count);
+}
+
+uint16_t ext4_extent_header_get_depth(ext4_extent_header_t *header)
+{
+	return uint16_t_le2host(header->depth);
+}
+
+uint32_t ext4_extent_header_get_generation(ext4_extent_header_t *header)
+{
+	return uint32_t_le2host(header->generation);
+}
 
 /**
Index: uspace/lib/ext4/libext4_extent.h
===================================================================
--- uspace/lib/ext4/libext4_extent.h	(revision 6d52126bbac32377d4a8964f4dd007b8d7933d26)
+++ uspace/lib/ext4/libext4_extent.h	(revision acd869e9d6dfc10604382d2c9d33fc6ae253c156)
@@ -68,5 +68,11 @@
 } ext4_extent_header_t;
 
-#define EXT4_EXTENT_MAGIC host2uint16_t_le(0xF30A)
+#define EXT4_EXTENT_MAGIC	0xF30A
+
+extern uint16_t ext4_extent_header_get_magic(ext4_extent_header_t *);
+extern uint16_t ext4_extent_header_get_entries_count(ext4_extent_header_t *);
+extern uint16_t ext4_extent_header_get_max_entries_count(ext4_extent_header_t *);
+extern uint16_t ext4_extent_header_get_depth(ext4_extent_header_t *);
+extern uint32_t ext4_extent_header_get_generation(ext4_extent_header_t *);
 
 #endif
Index: uspace/lib/ext4/libext4_filesystem.c
===================================================================
--- uspace/lib/ext4/libext4_filesystem.c	(revision 6d52126bbac32377d4a8964f4dd007b8d7933d26)
+++ uspace/lib/ext4/libext4_filesystem.c	(revision acd869e9d6dfc10604382d2c9d33fc6ae253c156)
@@ -301,4 +301,16 @@
 	block_t *block;
 
+	// TODO extents
+	if (ext4_inode_has_flag(inode, EXT4_INODE_FLAG_EXTENTS)) {
+		EXT4FS_DBG("Inode contains Extent");
+		// TODO
+		/*
+		current_block = ext4_inode_get_extent_block(inode, iblock);
+		*fblock = current_block;
+		return EOK;
+		*/
+
+	}
+
 	/* Handle simple case when we are dealing with direct reference */
 	if (iblock < EXT4_INODE_DIRECT_BLOCK_COUNT) {
Index: uspace/lib/ext4/libext4_inode.c
===================================================================
--- uspace/lib/ext4/libext4_inode.c	(revision 6d52126bbac32377d4a8964f4dd007b8d7933d26)
+++ uspace/lib/ext4/libext4_inode.c	(revision acd869e9d6dfc10604382d2c9d33fc6ae253c156)
@@ -62,5 +62,5 @@
 	uint32_t major_rev = ext4_superblock_get_rev_level(sb);
 
-	if (major_rev > 0 && ext4_inode_is_type(sb, inode, EXT4_INODE_MODE_FILE)) {
+	if ((major_rev > 0) && ext4_inode_is_type(sb, inode, EXT4_INODE_MODE_FILE)) {
 		return ((uint64_t)uint32_t_le2host(inode->size_hi)) << 32 |
 			    ((uint64_t)uint32_t_le2host(inode->size_lo));
@@ -102,4 +102,16 @@
 }
 
+uint32_t ext4_inode_get_extent_block(ext4_inode_t *inode, uint64_t idx)
+{
+	//ext4_extent_header_t *header = ext4_inode_get_extent_header(inode);
+	// TODO search required block
+	return 0;
+
+}
+
+ext4_extent_header_t * ext4_inode_get_extent_header(ext4_inode_t *inode)
+{
+	return (ext4_extent_header_t *)inode->blocks;
+}
 
 // Flags checker
Index: uspace/lib/ext4/libext4_inode.h
===================================================================
--- uspace/lib/ext4/libext4_inode.h	(revision 6d52126bbac32377d4a8964f4dd007b8d7933d26)
+++ uspace/lib/ext4/libext4_inode.h	(revision acd869e9d6dfc10604382d2c9d33fc6ae253c156)
@@ -36,4 +36,5 @@
 #include <libblock.h>
 #include <sys/types.h>
+#include "libext4_extent.h"
 #include "libext4_superblock.h"
 
@@ -167,5 +168,5 @@
 uint32_t ext4_inode_get_direct_block(ext4_inode_t *, uint8_t);
 uint32_t ext4_inode_get_indirect_block(ext4_inode_t *, uint8_t);
-
+uint32_t ext4_inode_get_extent_block(ext4_inode_t *, uint64_t);
 /*
 uint32_t blocks[EXT4_INODE_BLOCKS]; // Pointers to blocks
@@ -181,4 +182,5 @@
 */
 
+extern ext4_extent_header_t * ext4_inode_get_extent_header(ext4_inode_t *);
 extern bool ext4_inode_has_flag(ext4_inode_t *, uint32_t);
 
