mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-30 11:03:07 -04:00
iomap: use GFP_NOWAIT when application for iomap_dio_simple allocations
For non-blocking iocbs we should avoid blocking allocation where possible, so switch to a GFP_NOWAIT allocation here. Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Fengnan Chang <changfengnan@bytedance.com> Reviewed-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://patch.msgid.link/20260729192737.3190206-5-joannelkoong@gmail.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
committed by
Christian Brauner
parent
335d4b6201
commit
eecfab484d
@@ -986,6 +986,7 @@ static void iomap_dio_simple_end_io(struct bio *bio)
|
||||
ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter,
|
||||
struct iomap_iter *iomi)
|
||||
{
|
||||
gfp_t gfp = (iomi->flags & IOMAP_NOWAIT) ? GFP_NOWAIT : GFP_KERNEL;
|
||||
struct iomap_dio_simple *sr;
|
||||
unsigned int alignment;
|
||||
struct bio *bio;
|
||||
@@ -1015,7 +1016,11 @@ ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter,
|
||||
|
||||
bio = bio_alloc_bioset(iomi->iomap.bdev,
|
||||
bio_iov_vecs_to_alloc(iter, BIO_MAX_VECS),
|
||||
REQ_OP_READ, GFP_KERNEL, &iomap_dio_simple_pool);
|
||||
REQ_OP_READ, gfp, &iomap_dio_simple_pool);
|
||||
if (!bio) {
|
||||
ret = -EAGAIN;
|
||||
goto out_dio_end;
|
||||
}
|
||||
sr = container_of(bio, struct iomap_dio_simple, bio);
|
||||
sr->iocb = iocb;
|
||||
sr->dio_flags = 0;
|
||||
|
||||
Reference in New Issue
Block a user