+static struct extent_map *ext3_map_extent(struct address_space *mapping,
+ struct page *page, size_t page_offset,
+ loff_t start, u64 len, int create,
+ gfp_t gfp_mask)
+{
+ struct extent_map_tree *tree = &EXT3_I(mapping->host)->extent_tree;
+ handle_t *handle = NULL;
+ struct extent_map *ret;
+
+ if (create) {
+ handle = ext3_journal_start(mapping->host, len >> 9);
+ if (IS_ERR(handle))
+ return (struct extent_map *) handle;
+ }
+
+ ret = map_extent_get_block(tree, mapping, start, len, create, gfp_mask,
+ ext3_get_block);
+ if (handle)
+ ext3_journal_stop(handle);
+
+ return ret;
+}
+