]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - fs/btrfs/file-item.c
Merge branch 'for-4.13-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[mirror_ubuntu-eoan-kernel.git] / fs / btrfs / file-item.c
index 5b1c7090e546f0198e82bf15b6df789a20430c37..fdcb410026233ecc7c5ec475b8a5d711efc47b3c 100644 (file)
@@ -164,7 +164,8 @@ static blk_status_t __btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio
                                   u64 logical_offset, u32 *dst, int dio)
 {
        struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
-       struct bio_vec *bvec;
+       struct bio_vec bvec;
+       struct bvec_iter iter;
        struct btrfs_io_bio *btrfs_bio = btrfs_io_bio(bio);
        struct btrfs_csum_item *item = NULL;
        struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree;
@@ -177,7 +178,7 @@ static blk_status_t __btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio
        u64 page_bytes_left;
        u32 diff;
        int nblocks;
-       int count = 0, i;
+       int count = 0;
        u16 csum_size = btrfs_super_csum_size(fs_info->super_copy);
 
        path = btrfs_alloc_path();
@@ -206,8 +207,6 @@ static blk_status_t __btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio
        if (bio->bi_iter.bi_size > PAGE_SIZE * 8)
                path->reada = READA_FORWARD;
 
-       WARN_ON(bio->bi_vcnt <= 0);
-
        /*
         * the free space stuff is only read when it hasn't been
         * updated in the current transaction.  So, we can safely
@@ -223,13 +222,13 @@ static blk_status_t __btrfs_lookup_bio_sums(struct inode *inode, struct bio *bio
        if (dio)
                offset = logical_offset;
 
-       bio_for_each_segment_all(bvec, bio, i) {
-               page_bytes_left = bvec->bv_len;
+       bio_for_each_segment(bvec, bio, iter) {
+               page_bytes_left = bvec.bv_len;
                if (count)
                        goto next;
 
                if (!dio)
-                       offset = page_offset(bvec->bv_page) + bvec->bv_offset;
+                       offset = page_offset(bvec.bv_page) + bvec.bv_offset;
                count = btrfs_find_ordered_sum(inode, offset, disk_bytenr,
                                               (u32 *)csum, nblocks);
                if (count)
@@ -440,15 +439,15 @@ blk_status_t btrfs_csum_one_bio(struct inode *inode, struct bio *bio,
        struct btrfs_ordered_sum *sums;
        struct btrfs_ordered_extent *ordered = NULL;
        char *data;
-       struct bio_vec *bvec;
+       struct bvec_iter iter;
+       struct bio_vec bvec;
        int index;
        int nr_sectors;
-       int i, j;
        unsigned long total_bytes = 0;
        unsigned long this_sum_bytes = 0;
+       int i;
        u64 offset;
 
-       WARN_ON(bio->bi_vcnt <= 0);
        sums = kzalloc(btrfs_ordered_sum_size(fs_info, bio->bi_iter.bi_size),
                       GFP_NOFS);
        if (!sums)
@@ -465,19 +464,19 @@ blk_status_t btrfs_csum_one_bio(struct inode *inode, struct bio *bio,
        sums->bytenr = (u64)bio->bi_iter.bi_sector << 9;
        index = 0;
 
-       bio_for_each_segment_all(bvec, bio, j) {
+       bio_for_each_segment(bvec, bio, iter) {
                if (!contig)
-                       offset = page_offset(bvec->bv_page) + bvec->bv_offset;
+                       offset = page_offset(bvec.bv_page) + bvec.bv_offset;
 
                if (!ordered) {
                        ordered = btrfs_lookup_ordered_extent(inode, offset);
                        BUG_ON(!ordered); /* Logic error */
                }
 
-               data = kmap_atomic(bvec->bv_page);
+               data = kmap_atomic(bvec.bv_page);
 
                nr_sectors = BTRFS_BYTES_TO_BLKS(fs_info,
-                                                bvec->bv_len + fs_info->sectorsize
+                                                bvec.bv_len + fs_info->sectorsize
                                                 - 1);
 
                for (i = 0; i < nr_sectors; i++) {
@@ -504,12 +503,12 @@ blk_status_t btrfs_csum_one_bio(struct inode *inode, struct bio *bio,
                                        + total_bytes;
                                index = 0;
 
-                               data = kmap_atomic(bvec->bv_page);
+                               data = kmap_atomic(bvec.bv_page);
                        }
 
                        sums->sums[index] = ~(u32)0;
                        sums->sums[index]
-                               = btrfs_csum_data(data + bvec->bv_offset
+                               = btrfs_csum_data(data + bvec.bv_offset
                                                + (i * fs_info->sectorsize),
                                                sums->sums[index],
                                                fs_info->sectorsize);