]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
btrfs: add mirror_num to extent_read_full_page
authorJan Schmidt <list.btrfs@jan-o-sch.net>
Mon, 13 Jun 2011 18:02:58 +0000 (20:02 +0200)
committerChris Mason <chris.mason@oracle.com>
Wed, 16 Nov 2011 01:02:54 +0000 (20:02 -0500)
Currently, extent_read_full_page always assumes we are trying to read mirror
0, which generally is the best we can do. To add flexibility, pass it as a
parameter. This will be needed by scrub fixup code.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
(cherry picked from commit 8ddc7d9cd0a00062247c732b96386ec2462bdbc7)

fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/extent_io.h
fs/btrfs/inode.c

index 07b3ac662e193e6b3a19180c3c3c9bfccbeb8028..dc03438025353b2a1a33b71fc267b4debed53073 100644 (file)
@@ -908,7 +908,7 @@ static int btree_readpage(struct file *file, struct page *page)
 {
        struct extent_io_tree *tree;
        tree = &BTRFS_I(page->mapping->host)->io_tree;
-       return extent_read_full_page(tree, page, btree_get_extent);
+       return extent_read_full_page(tree, page, btree_get_extent, 0);
 }
 
 static int btree_releasepage(struct page *page, gfp_t gfp_flags)
index 8491712b1dadb1fd86b917e276dfe2f448eb1333..edf1c29936517660ed98e3ad282b24f5bc287730 100644 (file)
@@ -2076,16 +2076,16 @@ out:
 }
 
 int extent_read_full_page(struct extent_io_tree *tree, struct page *page,
-                           get_extent_t *get_extent)
+                           get_extent_t *get_extent, int mirror_num)
 {
        struct bio *bio = NULL;
        unsigned long bio_flags = 0;
        int ret;
 
-       ret = __extent_read_full_page(tree, page, get_extent, &bio, 0,
+       ret = __extent_read_full_page(tree, page, get_extent, &bio, mirror_num,
                                      &bio_flags);
        if (bio)
-               ret = submit_one_bio(READ, bio, 0, bio_flags);
+               ret = submit_one_bio(READ, bio, mirror_num, bio_flags);
        return ret;
 }
 
index 7b2f0c3e79292a2f73aec86ed112e46b1a438c69..a9dd994bf8264f3c2b07cc784d2e15d4d41aa83d 100644 (file)
@@ -185,7 +185,7 @@ int unlock_extent_cached(struct extent_io_tree *tree, u64 start, u64 end,
 int try_lock_extent(struct extent_io_tree *tree, u64 start, u64 end,
                    gfp_t mask);
 int extent_read_full_page(struct extent_io_tree *tree, struct page *page,
-                         get_extent_t *get_extent);
+                         get_extent_t *get_extent, int mirror_num);
 int __init extent_io_init(void);
 void extent_io_exit(void);
 
index 36cbdaecaffdfe324c5ca22cf220a77ea14f82bf..95f2d1cf177c09ebaa7cdf7a903241cc123b45f6 100644 (file)
@@ -6245,7 +6245,7 @@ int btrfs_readpage(struct file *file, struct page *page)
 {
        struct extent_io_tree *tree;
        tree = &BTRFS_I(page->mapping->host)->io_tree;
-       return extent_read_full_page(tree, page, btrfs_get_extent);
+       return extent_read_full_page(tree, page, btrfs_get_extent, 0);
 }
 
 static int btrfs_writepage(struct page *page, struct writeback_control *wbc)