diff options
author | Zhao Lei <zhaolei@cn.fujitsu.com> | 2015-12-31 09:46:45 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-02-18 04:26:12 -0500 |
commit | 02873e432518f84ad8f15d8911e79659ea38085f (patch) | |
tree | 8c1efbaa0ebef64c7343fef340d195ef316fc5aa /fs/btrfs/disk-io.c | |
parent | 6e39dbe8b9e55280c396a19fb92e82f1b56f83d7 (diff) |
btrfs: reada: Use fs_info instead of root in __readahead_hook's argument
What __readahead_hook() need exactly is fs_info, no need to convert
fs_info to root in caller and convert back in __readahead_hook()
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 4545e2e2ad45..498156ede32c 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -612,6 +612,7 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio, | |||
612 | int found_level; | 612 | int found_level; |
613 | struct extent_buffer *eb; | 613 | struct extent_buffer *eb; |
614 | struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; | 614 | struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; |
615 | struct btrfs_fs_info *fs_info = root->fs_info; | ||
615 | int ret = 0; | 616 | int ret = 0; |
616 | int reads_done; | 617 | int reads_done; |
617 | 618 | ||
@@ -637,21 +638,21 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio, | |||
637 | 638 | ||
638 | found_start = btrfs_header_bytenr(eb); | 639 | found_start = btrfs_header_bytenr(eb); |
639 | if (found_start != eb->start) { | 640 | if (found_start != eb->start) { |
640 | btrfs_err_rl(eb->fs_info, "bad tree block start %llu %llu", | 641 | btrfs_err_rl(fs_info, "bad tree block start %llu %llu", |
641 | found_start, eb->start); | 642 | found_start, eb->start); |
642 | ret = -EIO; | 643 | ret = -EIO; |
643 | goto err; | 644 | goto err; |
644 | } | 645 | } |
645 | if (check_tree_block_fsid(root->fs_info, eb)) { | 646 | if (check_tree_block_fsid(fs_info, eb)) { |
646 | btrfs_err_rl(eb->fs_info, "bad fsid on block %llu", | 647 | btrfs_err_rl(fs_info, "bad fsid on block %llu", |
647 | eb->start); | 648 | eb->start); |
648 | ret = -EIO; | 649 | ret = -EIO; |
649 | goto err; | 650 | goto err; |
650 | } | 651 | } |
651 | found_level = btrfs_header_level(eb); | 652 | found_level = btrfs_header_level(eb); |
652 | if (found_level >= BTRFS_MAX_LEVEL) { | 653 | if (found_level >= BTRFS_MAX_LEVEL) { |
653 | btrfs_err(root->fs_info, "bad tree block level %d", | 654 | btrfs_err(fs_info, "bad tree block level %d", |
654 | (int)btrfs_header_level(eb)); | 655 | (int)btrfs_header_level(eb)); |
655 | ret = -EIO; | 656 | ret = -EIO; |
656 | goto err; | 657 | goto err; |
657 | } | 658 | } |
@@ -659,7 +660,7 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio, | |||
659 | btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), | 660 | btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), |
660 | eb, found_level); | 661 | eb, found_level); |
661 | 662 | ||
662 | ret = csum_tree_block(root->fs_info, eb, 1); | 663 | ret = csum_tree_block(fs_info, eb, 1); |
663 | if (ret) { | 664 | if (ret) { |
664 | ret = -EIO; | 665 | ret = -EIO; |
665 | goto err; | 666 | goto err; |
@@ -680,7 +681,7 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio, | |||
680 | err: | 681 | err: |
681 | if (reads_done && | 682 | if (reads_done && |
682 | test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) | 683 | test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) |
683 | btree_readahead_hook(root, eb, eb->start, ret); | 684 | btree_readahead_hook(fs_info, eb, eb->start, ret); |
684 | 685 | ||
685 | if (ret) { | 686 | if (ret) { |
686 | /* | 687 | /* |
@@ -699,14 +700,13 @@ out: | |||
699 | static int btree_io_failed_hook(struct page *page, int failed_mirror) | 700 | static int btree_io_failed_hook(struct page *page, int failed_mirror) |
700 | { | 701 | { |
701 | struct extent_buffer *eb; | 702 | struct extent_buffer *eb; |
702 | struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; | ||
703 | 703 | ||
704 | eb = (struct extent_buffer *)page->private; | 704 | eb = (struct extent_buffer *)page->private; |
705 | set_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags); | 705 | set_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags); |
706 | eb->read_mirror = failed_mirror; | 706 | eb->read_mirror = failed_mirror; |
707 | atomic_dec(&eb->io_pages); | 707 | atomic_dec(&eb->io_pages); |
708 | if (test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) | 708 | if (test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) |
709 | btree_readahead_hook(root, eb, eb->start, -EIO); | 709 | btree_readahead_hook(eb->fs_info, eb, eb->start, -EIO); |
710 | return -EIO; /* we fixed nothing */ | 710 | return -EIO; /* we fixed nothing */ |
711 | } | 711 | } |
712 | 712 | ||