summaryrefslogtreecommitdiff
path: root/source3/smbd/aio.c
AgeCommit message (Collapse)AuthorFilesLines
2012-07-18s3: Make smbd/aio.c not depend on aio.h anymoreVolker Lendecke1-72/+20
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Remove the unused completion handling from aio.cVolker Lendecke1-342/+1
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Properly handle shutdown with the _send/_recv based aioVolker Lendecke1-107/+103
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Use SMB_VFS_PWRITE_SEND in schedule_smb2_aio_writeVolker Lendecke1-5/+55
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Use SMB_VFS_PREAD_SEND in schedule_smb2_aio_readVolker Lendecke1-5/+61
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Use SMB_VFS_PWRITE_SEND in schedule_aio_write_and_XVolker Lendecke1-3/+113
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-18s3: Use SMB_VFS_PREAD_SEND in schedule_aio_read_and_XVolker Lendecke1-3/+76
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-07-12Add an optimization to pthread aio writes to also do fsync if requested.Jeremy Allison1-0/+9
Should help by ensuring complete writes done in sub-thread, not in the main thread.
2012-07-12s3: Make us survive base-delaywrite with aio enabledVolker Lendecke1-0/+4
Signed-off-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Thu Jul 12 21:28:19 CEST 2012 on sn-devel-104
2012-06-26s3: Restore async i/o with the "native" AIO interfaceVolker Lendecke1-3/+0
eff3609 moved the async signal handler initialization to later in the process to enable aio_fork and aio_pthread on platforms without realtime signals. This commit broke the use of the native aio interface. aio_pending_size is initialized to 0, so aio.c will not allow async i/0 at all if modules do not set that variable correctly. Initialize to 100 right from the start. Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Tue Jun 26 14:08:22 CEST 2012 on sn-devel-104
2012-06-15s3:smbd: change aio.c to use fsp_fnum_dbg() for logging fsp->fnum.Michael Adam1-2/+2
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-06build: Rationalise AIO support in configure, ensure on by defaultAndrew Bartlett1-1/+1
With this change, the define to check for AIO is HAVE_AIO, consistant with other subsystems. It is now also on by default in the autoconf build, as it has been for waf. Andrew Bartlett
2012-04-12We never cancel SMB1 aio, only SMB2 aio - and in this case we always return ↵Jeremy Allison1-12/+7
a value. So pass_cancel is no longer needed.
2012-04-12Remove cancel_aio_by_fsp(). It can never work and could lead to memory ↵Jeremy Allison1-30/+9
corruption as outstanding IO's complete. Also we never have any aio's on a call to close_normal_file() with close_type ERROR_CLOSE.
2012-04-12Move the counting of outstanding_aio_calls into the lifecycle of the ↵Jeremy Allison1-6/+2
aio_extra struct. This way we can't end up with a mismatch between outstanding events and the counter. We may still have problems with canceling and not correctly freeing the aio struct, but at least the counter won't get out of sync anymore.
2012-04-09s3: Move the aio signal init to the vfs moduleVolker Lendecke1-21/+7
On platforms that don't have an RT signal space, signal initialization fails. aio_fork and aio_pthread don't need the signal, so this would block them from running as well.
2012-04-06build: Remove SMB_OFF_T, replace with off_tAndrew Bartlett1-6/+6
Now that we always require a 64 bit off_t, we no longer need SMB_OFF_T. Andrew Bartlett Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Fri Apr 6 01:47:43 CEST 2012 on sn-devel-104
2012-01-12Ensure we always free aio_ex on all error paths by moving the TALLOC_FREEJeremy Allison1-2/+1
call out of smbd_aio_complete_aio_ex() and into the caller. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Jan 12 03:10:52 CET 2012 on sn-devel-104
2011-11-15Remove unneeded NULL check.Jeremy Allison1-4/+0
2011-11-15s3:smbd/aio: handle_aio_completed() should do nothing if aio_ex->fsp is NULLStefan Metzmacher1-0/+5
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Tue Nov 15 18:47:55 CET 2011 on sn-devel-104
2011-11-15s3:smbd/aio: pass ECANCELED to the smb2 aio handlersStefan Metzmacher1-1/+4
metze
2011-11-15s3:smbd/aio: add cancel_smb2_aio()Stefan Metzmacher1-0/+38
metze
2011-08-02s3: Fix smb2 handling error returns from aioVolker Lendecke1-0/+2
Found when reading with aio_fork beyond the end of file. Metze, Jeremy, please check! Without this we get [2011/08/02 21:02:54.082661, 0] lib/util.c:778(smb_panic_s3) PANIC (pid 2302): smbd/smb2_read.c:593: Type mismatch: name[NULL] expected[struct smbd_smb2_read_state] [2011/08/02 21:02:54.094316, 0] lib/util.c:882(log_stack_trace) BACKTRACE: 23 stack frames: #0 bin/smbd(log_stack_trace+0x2d) [0xb72873d8] #1 bin/smbd(smb_panic_s3+0x7c) [0xb7287529] #2 bin/smbd(smb_panic+0x2f) [0xb7277e1f] #3 /root/git/s3-work/source3/bin/libtalloc.so.2 [0xb6c6bc48] #4 /root/git/s3-work/source3/bin/libtalloc.so.2 [0xb6c6ec79] #5 /root/git/s3-work/source3/bin/libtalloc.so.2(_talloc_get_type_abort+0x34) [0xb6c6ecb3] #6 bin/smbd [0xb6fbc405] #7 bin/smbd(_tevent_req_notify_callback+0x4a) [0xb729a85a] #8 bin/smbd [0xb729a888] #9 bin/smbd(_tevent_req_done+0x19) [0xb729aa73] #10 bin/smbd [0xb6fae517] #11 bin/smbd [0xb6fad258] #12 bin/smbd(smbd_aio_complete_aio_ex+0xf5) [0xb6fad6e8] #13 /root/git/inst/modules/vfs/aio_fork.so [0xb66d4992] #14 bin/smbd(run_events_poll+0x400) [0xb7297df2] #15 bin/smbd(smbd_process+0xd75) [0xb6f9d3a7] #16 bin/smbd [0xb756f07b] #17 bin/smbd(run_events_poll+0x400) [0xb7297df2] #18 bin/smbd [0xb7298254] #19 bin/smbd(_tevent_loop_once+0x9e) [0xb72986ac] #20 bin/smbd(main+0x185c) [0xb7570e59] #21 /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb6b08455] #22 bin/smbd [0xb6f14e01] Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue Aug 2 22:33:15 CEST 2011 on sn-devel-104
2011-06-09s3-talloc Change TALLOC_ZERO_P() to talloc_zero()Andrew Bartlett1-1/+1
Using the standard macro makes it easier to move code into common, as TALLOC_ZERO_P isn't standard talloc.
2011-05-31s3-globals Remove smbd_event_context() (use server_event_context())Andrew Bartlett1-2/+2
This has been a wrapper around server_event_context() for some time now, and removing this from dummmysmbd.c assists with library dependencies. Andrew Bartlett
2011-05-05Fixup build without --with-aio.Jeremy Allison1-1/+1
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu May 5 21:38:23 CEST 2011 on sn-devel-104
2011-05-05Fix many const compiler warnings.Jeremy Allison1-2/+2
2011-04-29s3-tevent: only include ../lib/util/tevent wrappers where needed.Günther Deschner1-0/+1
Guenther Autobuild-User: Günther Deschner <gd@samba.org> Autobuild-Date: Fri Apr 29 14:00:30 CEST 2011 on sn-devel-104
2011-03-30s3: include smbd/smbd.h where needed.Günther Deschner1-0/+1
Guenther
2010-12-15Change interface of schedule_smb2_aio_read() to allocate the return DATA_BLOB.Jeremy Allison1-3/+11
Change smb2_read code to allocate return DATA_BLOB just before the read. Preparing for SMB2 sendfile change which will not need to allocate return buffer. Jeremy
2010-09-07s3: use monotonic clock for aio timeoutBjörn Jacke1-2/+2
2010-08-24s3: Make srv_send_smb take an sconn instead of a sock fdVolker Lendecke1-3/+3
2010-08-16s3: Remove smbd_server_fd from handle_aio_read/write_completeVolker Lendecke1-2/+2
2010-08-16s3: Remove smbd_server_fd from schedule_aio_write_and_XVolker Lendecke1-1/+2
2010-08-13s3: Fix some error messagesVolker Lendecke1-3/+4
2010-07-20Fix warning - no return value for a non-void fn.Jeremy Allison1-0/+1
Jeremy.
2010-07-18s3: Work better without the aio sighandlerVolker Lendecke1-7/+22
Refuse async I/O if we can't set up the signal handler
2010-06-10Fix the build in the non WITH_AIO case (sorry).Jeremy Allison1-0/+20
2010-06-10Implement AIO in SMB2. Doesn't allow cancel calls yet (to be added).Jeremy Allison1-0/+281
Jeremy.
2010-06-07Make aio_ex owned by a talloc context, not neccessarily on the null context.Jeremy Allison1-8/+12
2010-06-07Move "write_though" into aio_ex struct.Jeremy Allison1-5/+5
2010-06-04wait_for_aio_completion() should return 0 on non-aio compiled case.Jeremy Allison1-1/+1
2010-06-04Rename req -> smbreq.Jeremy Allison1-26/+26
2010-06-04Change smbd_aio_complete_mid() -> smbd_aio_complete_aio_ex(). SimplifiesJeremy Allison1-32/+4
the code and eliminates find_aio_ex(). Jeremy.
2010-06-02Move to using a DATA_BLOB inside of struct aio_extra, not a char *.Jeremy Allison1-16/+16
Will make using AIO in SMB2 easier. Jeremy.
2010-06-01Don't use sigev_value.sival_int to just store the mid, use ↵Jeremy Allison1-38/+26
sigev_value.sival_ptr to store the private data structure. This allows easier use from SMB2. Ensure aio is initialized before the aio_pending_size check else aio will never be used. Jeremy.
2010-05-07This patch looks bigger than it is. It does 2 things. 1). Renames smbpid -> ↵Jeremy Allison1-2/+2
smblctx in our locking code. 2). Widens smblctx to 64-bits internally. Preparing to use the SMB2 handle as the locking context. Jeremy.
2010-04-12Move to using 64-bit mid values in our internal open file database.Jeremy Allison1-15/+23
This will allow us to share logic much easier between SMB1 and SMB2 servers. Jeremy
2010-04-05Fix issue with aio where r/w lock wasn't kept across aio read operations.Jeremy Allison1-23/+56
Change schedule_aio_read_and_X/schedule_aio_write_and_X to return NTSTATUS. Move the grant and release of the lock into the aio code. Jeremy
2010-04-01Move initialize_async_io_handler() inside of smbd/aio.c.Jeremy Allison1-34/+42
Call from actual aio read or write. No reason to call this globally on startup. Jeremy.