}
 
 /*
- * this allocates from the btrfs_bioset.  We're returning a bio right now
- * but you can call btrfs_io_bio for the appropriate container_of magic
+ * The following helpers allocate a bio. As it's backed by a bioset, it'll
+ * never fail.  We're returning a bio right now but you can call btrfs_io_bio
+ * for the appropriate container_of magic
  */
 struct bio *
 btrfs_bio_alloc(struct block_device *bdev, u64 first_sector, int nr_vecs,
        struct bio *bio;
 
        bio = bio_alloc_bioset(gfp_flags, nr_vecs, btrfs_bioset);
-
-       if (bio == NULL && (current->flags & PF_MEMALLOC)) {
-               while (!bio && (nr_vecs /= 2)) {
-                       bio = bio_alloc_bioset(gfp_flags,
-                                              nr_vecs, btrfs_bioset);
-               }
-       }
-
-       if (bio) {
-               bio->bi_bdev = bdev;
-               bio->bi_iter.bi_sector = first_sector;
-               btrfs_bio = btrfs_io_bio(bio);
-               btrfs_bio->csum = NULL;
-               btrfs_bio->csum_allocated = NULL;
-               btrfs_bio->end_io = NULL;
-       }
+       bio->bi_bdev = bdev;
+       bio->bi_iter.bi_sector = first_sector;
+       btrfs_bio = btrfs_io_bio(bio);
+       btrfs_bio->csum = NULL;
+       btrfs_bio->csum_allocated = NULL;
+       btrfs_bio->end_io = NULL;
        return bio;
 }
 
        struct btrfs_io_bio *btrfs_bio;
        struct bio *new;
 
+       /* Bio allocation backed by a bioset does not fail */
        new = bio_clone_fast(bio, gfp_mask, btrfs_bioset);
-       if (new) {
-               btrfs_bio = btrfs_io_bio(new);
-               btrfs_bio->csum = NULL;
-               btrfs_bio->csum_allocated = NULL;
-               btrfs_bio->end_io = NULL;
-               btrfs_bio->iter = bio->bi_iter;
-       }
+       btrfs_bio = btrfs_io_bio(new);
+       btrfs_bio->csum = NULL;
+       btrfs_bio->csum_allocated = NULL;
+       btrfs_bio->end_io = NULL;
+       btrfs_bio->iter = bio->bi_iter;
        return new;
 }
 
-/* this also allocates from the btrfs_bioset */
 struct bio *btrfs_io_bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs)
 {
        struct btrfs_io_bio *btrfs_bio;
        struct bio *bio;
 
+       /* Bio allocation backed by a bioset does not fail */
        bio = bio_alloc_bioset(gfp_mask, nr_iovecs, btrfs_bioset);
-       if (bio) {
-               btrfs_bio = btrfs_io_bio(bio);
-               btrfs_bio->csum = NULL;
-               btrfs_bio->csum_allocated = NULL;
-               btrfs_bio->end_io = NULL;
-       }
+       btrfs_bio = btrfs_io_bio(bio);
+       btrfs_bio->csum = NULL;
+       btrfs_bio->csum_allocated = NULL;
+       btrfs_bio->end_io = NULL;
        return bio;
 }