]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
btrfs: btrfs_io_bio_alloc never fails, skip error handling
authorDavid Sterba <dsterba@suse.com>
Fri, 2 Jun 2017 15:38:30 +0000 (17:38 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2017 16:26:02 +0000 (18:26 +0200)
Update direct callers of btrfs_io_bio_alloc that do error handling, that
we can now remove.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/check-integrity.c
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/raid56.c
fs/btrfs/scrub.c

index 5f8006e4de9d72b61838875e40c35f1f04d923f9..160879c802d04de05d3810e0c2bb26219af2b3ac 100644 (file)
@@ -1639,11 +1639,6 @@ static int btrfsic_read_block(struct btrfsic_state *state,
                unsigned int j;
 
                bio = btrfs_io_bio_alloc(GFP_NOFS, num_pages - i);
-               if (!bio) {
-                       pr_info("btrfsic: bio_alloc() for %u pages failed!\n",
-                              num_pages - i);
-                       return -1;
-               }
                bio->bi_bdev = block_ctx->dev->bdev;
                bio->bi_iter.bi_sector = dev_bytenr >> 9;
                bio_set_op_attrs(bio, REQ_OP_READ, 0);
index cb79bce3a972b200115f73440c545cf5c21fe0fa..9f2ffe2c6afb0b651ad5fa80f56f1ed0cee276a8 100644 (file)
@@ -3533,9 +3533,6 @@ static int write_dev_flush(struct btrfs_device *device, int wait)
         */
        device->flush_bio = NULL;
        bio = btrfs_io_bio_alloc(GFP_NOFS, 0);
-       if (!bio)
-               return -ENOMEM;
-
        bio->bi_end_io = btrfs_end_empty_barrier;
        bio->bi_bdev = device->bdev;
        bio->bi_opf = REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH;
index e15bd02e534fd12f5eaeb20e33f472ff4c6cf772..bfcbe8f2818b49fd68722059c5c79137f38cd28c 100644 (file)
@@ -1988,8 +1988,6 @@ int repair_io_failure(struct btrfs_fs_info *fs_info, u64 ino, u64 start,
        BUG_ON(!mirror_num);
 
        bio = btrfs_io_bio_alloc(GFP_NOFS, 1);
-       if (!bio)
-               return -EIO;
        bio->bi_iter.bi_size = 0;
        map_length = length;
 
@@ -2334,9 +2332,6 @@ struct bio *btrfs_create_repair_bio(struct inode *inode, struct bio *failed_bio,
        struct btrfs_io_bio *btrfs_bio;
 
        bio = btrfs_io_bio_alloc(GFP_NOFS, 1);
-       if (!bio)
-               return NULL;
-
        bio->bi_end_io = endio_func;
        bio->bi_iter.bi_sector = failrec->logical >> 9;
        bio->bi_bdev = fs_info->fs_devices->latest_bdev;
index d68af3c61b49838c84993d4218fc3fe17afc8c3d..7dd55448ac6836666408dab7658c99acfe1afa25 100644 (file)
@@ -1099,9 +1099,6 @@ static int rbio_add_io_page(struct btrfs_raid_bio *rbio,
 
        /* put a new bio on the list */
        bio = btrfs_io_bio_alloc(GFP_NOFS, bio_max_len >> PAGE_SHIFT?:1);
-       if (!bio)
-               return -ENOMEM;
-
        bio->bi_iter.bi_size = 0;
        bio->bi_bdev = stripe->dev->bdev;
        bio->bi_iter.bi_sector = disk_start >> 9;
index 096e503e3ddc240aad7a64546b8767ffd491f0ff..1e2dfea00b2fc3951a3dc0a7a10e708c07c3e5fc 100644 (file)
@@ -1738,11 +1738,6 @@ static void scrub_recheck_block(struct btrfs_fs_info *fs_info,
 
                WARN_ON(!page->page);
                bio = btrfs_io_bio_alloc(GFP_NOFS, 1);
-               if (!bio) {
-                       page->io_error = 1;
-                       sblock->no_io_error_seen = 0;
-                       continue;
-               }
                bio->bi_bdev = page->dev->bdev;
 
                bio_add_page(bio, page->page, PAGE_SIZE, 0);
@@ -1831,8 +1826,6 @@ static int scrub_repair_page_from_good_copy(struct scrub_block *sblock_bad,
                }
 
                bio = btrfs_io_bio_alloc(GFP_NOFS, 1);
-               if (!bio)
-                       return -EIO;
                bio->bi_bdev = page_bad->dev->bdev;
                bio->bi_iter.bi_sector = page_bad->physical >> 9;
                bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
@@ -1924,10 +1917,6 @@ again:
                if (!bio) {
                        bio = btrfs_io_bio_alloc(GFP_KERNEL,
                                        sctx->pages_per_wr_bio);
-                       if (!bio) {
-                               mutex_unlock(&sctx->wr_lock);
-                               return -ENOMEM;
-                       }
                        sbio->bio = bio;
                }
 
@@ -2329,8 +2318,6 @@ again:
                if (!bio) {
                        bio = btrfs_io_bio_alloc(GFP_KERNEL,
                                        sctx->pages_per_rd_bio);
-                       if (!bio)
-                               return -ENOMEM;
                        sbio->bio = bio;
                }
 
@@ -2457,9 +2444,6 @@ static void scrub_missing_raid56_pages(struct scrub_block *sblock)
        }
 
        bio = btrfs_io_bio_alloc(GFP_NOFS, 0);
-       if (!bio)
-               goto bbio_out;
-
        bio->bi_iter.bi_sector = logical >> 9;
        bio->bi_private = sblock;
        bio->bi_end_io = scrub_missing_raid56_end_io;
@@ -3036,9 +3020,6 @@ static void scrub_parity_check_and_repair(struct scrub_parity *sparity)
                goto bbio_out;
 
        bio = btrfs_io_bio_alloc(GFP_NOFS, 0);
-       if (!bio)
-               goto bbio_out;
-
        bio->bi_iter.bi_sector = sparity->logic_start >> 9;
        bio->bi_private = sparity;
        bio->bi_end_io = scrub_parity_bio_endio;
@@ -4646,12 +4627,6 @@ static int write_page_nocow(struct scrub_ctx *sctx,
                return -EIO;
        }
        bio = btrfs_io_bio_alloc(GFP_NOFS, 1);
-       if (!bio) {
-               spin_lock(&sctx->stat_lock);
-               sctx->stat.malloc_errors++;
-               spin_unlock(&sctx->stat_lock);
-               return -ENOMEM;
-       }
        bio->bi_iter.bi_size = 0;
        bio->bi_iter.bi_sector = physical_for_dev_replace >> 9;
        bio->bi_bdev = dev->bdev;