From 7a9d70f15d31640ece99ebd41dc5918b6066af1a Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 26 Dec 2018 15:40:22 -0800 Subject: [PATCH] ircd::aio: Add a reference to the fs opts structure for the request. --- ircd/aio.cc | 8 ++++++++ ircd/aio.h | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ircd/aio.cc b/ircd/aio.cc index bde35227c..42752c22c 100644 --- a/ircd/aio.cc +++ b/ircd/aio.cc @@ -94,6 +94,8 @@ ircd::fs::aio::request::fsync::fsync(const int &fd, const sync_opts &opts) :request{fd} { + sopts = &opts; + aio_reqprio = reqprio(opts.priority); aio_lio_opcode = IOCB_CMD_FSYNC; @@ -122,6 +124,8 @@ ircd::fs::aio::request::fdsync::fdsync(const int &fd, const sync_opts &opts) :request{fd} { + sopts = &opts; + aio_reqprio = reqprio(opts.priority); aio_lio_opcode = IOCB_CMD_FDSYNC; @@ -151,6 +155,8 @@ ircd::fs::aio::request::read::read(const int &fd, const read_opts &opts) :request{fd} { + ropts = &opts; + aio_reqprio = reqprio(opts.priority); aio_lio_opcode = IOCB_CMD_PREADV; @@ -196,6 +202,8 @@ ircd::fs::aio::request::write::write(const int &fd, const write_opts &opts) :request{fd} { + wopts = &opts; + aio_reqprio = reqprio(opts.priority); aio_lio_opcode = IOCB_CMD_PWRITEV; diff --git a/ircd/aio.h b/ircd/aio.h index eaafafe07..16c943b83 100644 --- a/ircd/aio.h +++ b/ircd/aio.h @@ -71,7 +71,12 @@ struct ircd::fs::aio::request ctx::ctx *waiter {ctx::current}; ssize_t retval {std::numeric_limits::min()}; - ssize_t errcode {0}; + ssize_t errcode {0}; union + { + const read_opts *ropts {nullptr}; + const write_opts *wopts; + const sync_opts *sopts; + }; public: const_iovec_view iovec() const;