diff options
author | Adam Manzanares <adam.manzanares@wdc.com> | 2018-05-22 20:52:19 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2018-05-31 17:50:55 +0300 |
commit | d9a08a9e616beeccdbd0e7262b7225ffdfa49e92 (patch) | |
tree | f2f7985aa07ccee2337631273f4b906389649477 /include | |
parent | fc28724d67c90ff48b976e0687caf79993160bed (diff) | |
download | linux-d9a08a9e616beeccdbd0e7262b7225ffdfa49e92.tar.xz |
fs: Add aio iopriority support
This is the per-I/O equivalent of the ioprio_set system call.
When IOCB_FLAG_IOPRIO is set on the iocb aio_flags field, then we set the
newly added kiocb ki_ioprio field to the value in the iocb aio_reqprio field.
This patch depends on block: add ioprio_check_cap function.
Signed-off-by: Adam Manzanares <adam.manzanares@wdc.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fs.h | 3 | ||||
-rw-r--r-- | include/uapi/linux/aio_abi.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index b432fc3feb93..eef9334b26d1 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -36,6 +36,7 @@ #include <linux/delayed_call.h> #include <linux/uuid.h> #include <linux/errseq.h> +#include <linux/ioprio.h> #include <asm/byteorder.h> #include <uapi/linux/fs.h> @@ -300,6 +301,7 @@ struct kiocb { void *private; int ki_flags; u16 ki_hint; + u16 ki_ioprio; /* See linux/ioprio.h */ } __randomize_layout; static inline bool is_sync_kiocb(struct kiocb *kiocb) @@ -1944,6 +1946,7 @@ static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) .ki_filp = filp, .ki_flags = iocb_flags(filp), .ki_hint = ki_hint_validate(file_write_hint(filp)), + .ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0), }; } diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h index ed0185945bb2..75846164290e 100644 --- a/include/uapi/linux/aio_abi.h +++ b/include/uapi/linux/aio_abi.h @@ -53,6 +53,7 @@ enum { * is valid. */ #define IOCB_FLAG_RESFD (1 << 0) +#define IOCB_FLAG_IOPRIO (1 << 1) /* read() from /dev/aio returns these structures. */ struct io_event { |