diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-07-30 10:29:12 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:05 -0400 |
commit | 33958dc6d38fb4ca7e62273855fcb2db7e616263 (patch) | |
tree | 98c97e1827e537286499f6a755833a2946cc4f47 /fs/btrfs/extent_io.c | |
parent | f321e4910398cf7922265d269fb17fd26f312571 (diff) |
Btrfs: Fix verify_parent_transid
It was incorrectly clearing the up to date flag on the buffer even
when the buffer properly verified.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index e3547a992d5c..964ec1622d66 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -2647,6 +2647,8 @@ static inline struct page *extent_buffer_page(struct extent_buffer *eb, | |||
2647 | return eb->first_page; | 2647 | return eb->first_page; |
2648 | i += eb->start >> PAGE_CACHE_SHIFT; | 2648 | i += eb->start >> PAGE_CACHE_SHIFT; |
2649 | mapping = eb->first_page->mapping; | 2649 | mapping = eb->first_page->mapping; |
2650 | if (!mapping) | ||
2651 | return NULL; | ||
2650 | read_lock_irq(&mapping->tree_lock); | 2652 | read_lock_irq(&mapping->tree_lock); |
2651 | p = radix_tree_lookup(&mapping->page_tree, i); | 2653 | p = radix_tree_lookup(&mapping->page_tree, i); |
2652 | read_unlock_irq(&mapping->tree_lock); | 2654 | read_unlock_irq(&mapping->tree_lock); |
@@ -2908,7 +2910,8 @@ int clear_extent_buffer_uptodate(struct extent_io_tree *tree, | |||
2908 | GFP_NOFS); | 2910 | GFP_NOFS); |
2909 | for (i = 0; i < num_pages; i++) { | 2911 | for (i = 0; i < num_pages; i++) { |
2910 | page = extent_buffer_page(eb, i); | 2912 | page = extent_buffer_page(eb, i); |
2911 | ClearPageUptodate(page); | 2913 | if (page) |
2914 | ClearPageUptodate(page); | ||
2912 | } | 2915 | } |
2913 | return 0; | 2916 | return 0; |
2914 | } | 2917 | } |