mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
synced 2025-09-13 11:07:46 +10:00
block: fix direct io NOWAIT flag not work
commit8b44b4d815
("block: don't allow multiple bios for IOCB_NOWAIT issue") backport a upstream fix, but miss commitb77c88c210
("block: pass a block_device and opf to bio_alloc_kiocb"), and introduce this bug. commitb77c88c210
("block: pass a block_device and opf to bio_alloc_kiocb") have other depend patch, so just fix it. Fixes:8b44b4d815
("block: don't allow multiple bios for IOCB_NOWAIT issue") Signed-off-by: Fengnan Chang <changfengnan@bytedance.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d83e52750d
commit
4f8244e0a2
@ -259,7 +259,6 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
|
||||
blk_finish_plug(&plug);
|
||||
return -EAGAIN;
|
||||
}
|
||||
bio->bi_opf |= REQ_NOWAIT;
|
||||
}
|
||||
|
||||
if (is_read) {
|
||||
@ -270,6 +269,10 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
|
||||
bio->bi_opf = dio_bio_write_op(iocb);
|
||||
task_io_account_write(bio->bi_iter.bi_size);
|
||||
}
|
||||
|
||||
if (iocb->ki_flags & IOCB_NOWAIT)
|
||||
bio->bi_opf |= REQ_NOWAIT;
|
||||
|
||||
dio->size += bio->bi_iter.bi_size;
|
||||
pos += bio->bi_iter.bi_size;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user