summaryrefslogtreecommitdiffstats
path: root/fs/direct-io.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-08-29 18:36:56 +0200
committerJens Axboe <axboe@kernel.dk>2018-11-07 21:45:00 +0100
commitd1e36282b0bbd5de6a9c4d5275e94ef3b3438f48 (patch)
tree80328ea0526706f873113125f3bbee640615d3f2 /fs/direct-io.c
parentnvme: utilize two queue maps, one for reads and one for writes (diff)
downloadlinux-d1e36282b0bbd5de6a9c4d5275e94ef3b3438f48.tar.xz
linux-d1e36282b0bbd5de6a9c4d5275e94ef3b3438f48.zip
block: add REQ_HIPRI and inherit it from IOCB_HIPRI
We use IOCB_HIPRI to poll for IO in the caller instead of scheduling. This information is not available for (or after) IO submission. The driver may make different queue choices based on the type of IO, so make the fact that we will poll for this IO known to the lower layers as well. Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Keith Busch <keith.busch@intel.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r--fs/direct-io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c
index 722d17c88edb..ea07d5a34317 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -1265,6 +1265,8 @@ do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
} else {
dio->op = REQ_OP_READ;
}
+ if (iocb->ki_flags & IOCB_HIPRI)
+ dio->op_flags |= REQ_HIPRI;
/*
* For AIO O_(D)SYNC writes we need to defer completions to a workqueue