From cb405947caa9f4bdb962483860a9093a364ecbf2 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 12 Jul 2012 10:57:47 -0700 Subject: Add an optimization to pthread aio writes to also do fsync if requested. Should help by ensuring complete writes done in sub-thread, not in the main thread. --- source3/smbd/aio.c | 9 +++++++++ source3/smbd/proto.h | 1 + 2 files changed, 10 insertions(+) (limited to 'source3/smbd') diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c index 0ea5274420..569741c747 100644 --- a/source3/smbd/aio.c +++ b/source3/smbd/aio.c @@ -52,6 +52,15 @@ struct aio_extra { int (*handle_completion)(struct aio_extra *ex, int errcode); }; +/**************************************************************************** + Accessor function to return write_through state. +*****************************************************************************/ + +bool aio_write_through_requested(struct aio_extra *aio_ex) +{ + return aio_ex->write_through; +} + /**************************************************************************** Initialize the signal handler for aio read/write. *****************************************************************************/ diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 9aaa00a1ce..26d6432c15 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -64,6 +64,7 @@ void srv_set_signing(struct smbd_server_connection *conn, /* The following definitions come from smbd/aio.c */ +bool aio_write_through_requested(struct aio_extra *aio_ex); bool initialize_async_io_handler(void); NTSTATUS schedule_aio_read_and_X(connection_struct *conn, struct smb_request *req, -- cgit