sizeof(struct gfs2_dinode);
        iomap->offset = 0;
        iomap->length = i_size_read(inode);
-       iomap->type = IOMAP_MAPPED;
-       iomap->flags = IOMAP_F_DATA_INLINE;
+       iomap->type = IOMAP_INLINE;
  }
  
+ #define IOMAP_F_GFS2_BOUNDARY IOMAP_F_PRIVATE
+ 
  /**
 - * gfs2_iomap_begin - Map blocks from an inode to disk blocks
 + * gfs2_iomap_get - Map blocks from an inode to disk blocks
   * @inode: The inode
   * @pos: Starting position in bytes
   * @length: Length to map, in bytes
        if (*ptr == 0)
                goto do_alloc;
  
 -      iomap->type = IOMAP_MAPPED;
 -      iomap->addr = be64_to_cpu(*ptr) << inode->i_blkbits;
 +      bh = mp->mp_bh[ip->i_height - 1];
 +      len = gfs2_extent_length(bh->b_data, bh->b_size, ptr, len, &eob);
  
 -      bh = mp.mp_bh[ip->i_height - 1];
 -      len = gfs2_extent_length(bh->b_data, bh->b_size, ptr, lend - lblock, &eob);
 +      iomap->addr = be64_to_cpu(*ptr) << inode->i_blkbits;
 +      iomap->length = len << inode->i_blkbits;
 +      iomap->type = IOMAP_MAPPED;
 +      iomap->flags = IOMAP_F_MERGED;
        if (eob)
-               iomap->flags |= IOMAP_F_BOUNDARY;
+               iomap->flags |= IOMAP_F_GFS2_BOUNDARY;
 -      iomap->length = (u64)len << inode->i_blkbits;
  
 -out_release:
 -      release_metapath(&mp);
 -      bmap_unlock(ip, flags & IOMAP_WRITE);
  out:
 -      trace_gfs2_iomap_end(ip, iomap, ret);
 +      iomap->bdev = inode->i_sb->s_bdev;
 +unlock:
 +      up_read(&ip->i_rw_mutex);
        return ret;
  
  do_alloc: