Fix inline extent handling in btrfs_get_extent
authorYan <yanzheng@21cn.com>
Mon, 29 Oct 2007 15:41:07 +0000 (11:41 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:03:57 +0000 (11:03 -0400)
commit689f9346612d96ab93890160cf2fe0df5217ab73
tree6a5e153e2cadf1042e28eab79956cad849056064
parentc67cda1758130f3e437744c4c2ec4a7cc25564e3
Fix inline extent handling in btrfs_get_extent

1.  Reorder kmap and the test for  'page != NULL'
2.  Zero-fill rest area of a block when inline extent isn't big enough.
3.  Do not insert extent_map into the map tree when page == NULL.
(If insert the extent_map into the map tree,  subsequent read requests
will find it in the map tree directly and the corresponding inline
extent data aren't copied into page by the the get_extent function.
extent_read_full_page can't handle that case)

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c