diff options
author | Christoph Hellwig <hch@lst.de> | 2022-04-06 08:12:25 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-04-17 19:29:41 -0600 |
commit | 46a2d4ccc49903923506685a8368ca88312bbdc9 (patch) | |
tree | a371f007a452d424644ac2cfee090e292fd8caaa /fs/squashfs | |
parent | f9e69aa9ccd7e51c47b147e45e03987ea0ef9aa3 (diff) | |
download | linux-46a2d4ccc49903923506685a8368ca88312bbdc9.tar.gz linux-46a2d4ccc49903923506685a8368ca88312bbdc9.tar.bz2 linux-46a2d4ccc49903923506685a8368ca88312bbdc9.zip |
squashfs: always use bio_kmalloc in squashfs_bio_read
If a plain kmalloc that is not backed by a mempool is safe here for a
large read (and the actual page allocations), it must also be for a
small one, so simplify the code a bit.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Phillip Lougher <phillip@squashfs.org.uk>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://lore.kernel.org/r/20220406061228.410163-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/squashfs')
-rw-r--r-- | fs/squashfs/block.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c index 622c844f6d11..4311a3221892 100644 --- a/fs/squashfs/block.c +++ b/fs/squashfs/block.c @@ -86,16 +86,11 @@ static int squashfs_bio_read(struct super_block *sb, u64 index, int length, int error, i; struct bio *bio; - if (page_count <= BIO_MAX_VECS) { - bio = bio_alloc(sb->s_bdev, page_count, REQ_OP_READ, GFP_NOIO); - } else { - bio = bio_kmalloc(GFP_NOIO, page_count); - bio_set_dev(bio, sb->s_bdev); - bio->bi_opf = REQ_OP_READ; - } - + bio = bio_kmalloc(GFP_NOIO, page_count); if (!bio) return -ENOMEM; + bio_set_dev(bio, sb->s_bdev); + bio->bi_opf = REQ_OP_READ; bio->bi_iter.bi_sector = block * (msblk->devblksize >> SECTOR_SHIFT); |