diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index acb8c1d177e2..f2312b8aec4d 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2721,14 +2721,13 @@ struct bio *btrfs_io_bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs) return bio; } -struct bio *btrfs_bio_clone_partial(struct bio *orig, gfp_t gfp_mask, - int offset, int size) +struct bio *btrfs_bio_clone_partial(struct bio *orig, int offset, int size) { struct bio *bio; struct btrfs_io_bio *btrfs_bio; /* this will never fail when it's backed by a bioset */ - bio = bio_clone_fast(orig, gfp_mask, btrfs_bioset); + bio = bio_clone_fast(orig, GFP_NOFS, btrfs_bioset); ASSERT(bio); btrfs_bio = btrfs_io_bio(bio); diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h index 3df018549ce4..e3512c5d8770 100644 --- a/fs/btrfs/extent_io.h +++ b/fs/btrfs/extent_io.h @@ -467,8 +467,7 @@ btrfs_bio_alloc(struct block_device *bdev, u64 first_sector, int nr_vecs, gfp_t gfp_flags); struct bio *btrfs_io_bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs); struct bio *btrfs_bio_clone(struct bio *bio, gfp_t gfp_mask); -struct bio *btrfs_bio_clone_partial(struct bio *orig, gfp_t gfp_mask, - int offset, int size); +struct bio *btrfs_bio_clone_partial(struct bio *orig, int offset, int size); struct btrfs_fs_info; struct btrfs_inode; diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 93f1b31199d2..97b2bb9d3c89 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -8514,7 +8514,7 @@ static int btrfs_submit_direct_hook(struct btrfs_dio_private *dip, * This will never fail as it's passing GPF_NOFS and * the allocation is backed by btrfs_bioset. */ - bio = btrfs_bio_clone_partial(orig_bio, GFP_NOFS, clone_offset, + bio = btrfs_bio_clone_partial(orig_bio, clone_offset, clone_len); bio->bi_private = dip; bio->bi_end_io = btrfs_end_dio_bio;