Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 128835
b: refs/heads/master
c: 6af118c
h: refs/heads/master
i:
  128833: 469bc89
  128831: e1dab76
v: v3
  • Loading branch information
Chris Mason committed Sep 25, 2008
1 parent 929786f commit 06e2c03
Show file tree
Hide file tree
Showing 5 changed files with 130 additions and 221 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4a09675279674041862d2210635b0cc1f60be28e
refs/heads/master: 6af118ce51b52ceda357c671550c79628b9c4a65
26 changes: 9 additions & 17 deletions trunk/fs/btrfs/disk-io.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,6 @@ int btree_readpage_end_io_hook(struct page *page, u64 start, u64 end,

end = min_t(u64, eb->len, PAGE_CACHE_SIZE);
end = eb->start + end - 1;
release_extent_buffer_tail_pages(eb);
err:
free_extent_buffer(eb);
out:
Expand Down Expand Up @@ -563,21 +562,21 @@ static int btree_releasepage(struct page *page, gfp_t gfp_flags)
struct extent_map_tree *map;
int ret;

if (page_count(page) > 3) {
/* once for page->private, once for the caller, once
* once for the page cache
*/
return 0;
}
tree = &BTRFS_I(page->mapping->host)->io_tree;
map = &BTRFS_I(page->mapping->host)->extent_tree;

ret = try_release_extent_state(map, tree, page, gfp_flags);
if (!ret) {
return 0;
}

ret = try_release_extent_buffer(tree, page);
if (ret == 1) {
invalidate_extent_lru(tree, page_offset(page), PAGE_CACHE_SIZE);
ClearPagePrivate(page);
set_page_private(page, 0);
page_cache_release(page);
}

return ret;
}

Expand All @@ -588,7 +587,8 @@ static void btree_invalidatepage(struct page *page, unsigned long offset)
extent_invalidatepage(tree, page, offset);
btree_releasepage(page, GFP_NOFS);
if (PagePrivate(page)) {
invalidate_extent_lru(tree, page_offset(page), PAGE_CACHE_SIZE);
printk("warning page private not zero on page %Lu\n",
page_offset(page));
ClearPagePrivate(page);
set_page_private(page, 0);
page_cache_release(page);
Expand Down Expand Up @@ -1456,7 +1456,6 @@ struct btrfs_root *open_ctree(struct super_block *sb,
free_extent_buffer(tree_root->node);
fail_sys_array:
fail_sb_buffer:
extent_io_tree_empty_lru(&BTRFS_I(fs_info->btree_inode)->io_tree);
btrfs_stop_workers(&fs_info->fixup_workers);
btrfs_stop_workers(&fs_info->workers);
btrfs_stop_workers(&fs_info->endio_workers);
Expand Down Expand Up @@ -1705,13 +1704,6 @@ int close_ctree(struct btrfs_root *root)

filemap_write_and_wait(fs_info->btree_inode->i_mapping);

extent_io_tree_empty_lru(&fs_info->free_space_cache);
extent_io_tree_empty_lru(&fs_info->block_group_cache);
extent_io_tree_empty_lru(&fs_info->pinned_extents);
extent_io_tree_empty_lru(&fs_info->pending_del);
extent_io_tree_empty_lru(&fs_info->extent_ins);
extent_io_tree_empty_lru(&BTRFS_I(fs_info->btree_inode)->io_tree);

truncate_inode_pages(fs_info->btree_inode->i_mapping, 0);

btrfs_stop_workers(&fs_info->fixup_workers);
Expand Down
Loading

0 comments on commit 06e2c03

Please sign in to comment.