summaryrefslogtreecommitdiffstats
path: root/source3/smbd/aio.c
Commit message (Collapse)AuthorAgeFilesLines
* s3: Move the aio signal init to the vfs moduleVolker Lendecke2012-04-091-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.
* build: Remove SMB_OFF_T, replace with off_tAndrew Bartlett2012-04-061-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
* Ensure we always free aio_ex on all error paths by moving the TALLOC_FREEJeremy Allison2012-01-121-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
* Remove unneeded NULL check.Jeremy Allison2011-11-151-4/+0
|
* s3:smbd/aio: handle_aio_completed() should do nothing if aio_ex->fsp is NULLStefan Metzmacher2011-11-151-0/+5
| | | | | | | metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Tue Nov 15 18:47:55 CET 2011 on sn-devel-104
* s3:smbd/aio: pass ECANCELED to the smb2 aio handlersStefan Metzmacher2011-11-151-1/+4
| | | | metze
* s3:smbd/aio: add cancel_smb2_aio()Stefan Metzmacher2011-11-151-0/+38
| | | | metze
* s3: Fix smb2 handling error returns from aioVolker Lendecke2011-08-021-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
* s3-talloc Change TALLOC_ZERO_P() to talloc_zero()Andrew Bartlett2011-06-091-1/+1
| | | | | Using the standard macro makes it easier to move code into common, as TALLOC_ZERO_P isn't standard talloc.
* s3-globals Remove smbd_event_context() (use server_event_context())Andrew Bartlett2011-05-311-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
* Fixup build without --with-aio.Jeremy Allison2011-05-051-1/+1
| | | | | Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu May 5 21:38:23 CEST 2011 on sn-devel-104
* Fix many const compiler warnings.Jeremy Allison2011-05-051-2/+2
|
* s3-tevent: only include ../lib/util/tevent wrappers where needed.Günther Deschner2011-04-291-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
* s3: include smbd/smbd.h where needed.Günther Deschner2011-03-301-0/+1
| | | | Guenther
* Change interface of schedule_smb2_aio_read() to allocate the return DATA_BLOB.Jeremy Allison2010-12-151-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
* s3: use monotonic clock for aio timeoutBjörn Jacke2010-09-071-2/+2
|
* s3: Make srv_send_smb take an sconn instead of a sock fdVolker Lendecke2010-08-241-3/+3
|
* s3: Remove smbd_server_fd from handle_aio_read/write_completeVolker Lendecke2010-08-161-2/+2
|
* s3: Remove smbd_server_fd from schedule_aio_write_and_XVolker Lendecke2010-08-161-1/+2
|
* s3: Fix some error messagesVolker Lendecke2010-08-131-3/+4
|
* Fix warning - no return value for a non-void fn.Jeremy Allison2010-07-201-0/+1
| | | | Jeremy.
* s3: Work better without the aio sighandlerVolker Lendecke2010-07-181-7/+22
| | | | Refuse async I/O if we can't set up the signal handler
* Fix the build in the non WITH_AIO case (sorry).Jeremy Allison2010-06-101-0/+20
|
* Implement AIO in SMB2. Doesn't allow cancel calls yet (to be added).Jeremy Allison2010-06-101-0/+281
| | | | Jeremy.
* Make aio_ex owned by a talloc context, not neccessarily on the null context.Jeremy Allison2010-06-071-8/+12
|
* Move "write_though" into aio_ex struct.Jeremy Allison2010-06-071-5/+5
|
* wait_for_aio_completion() should return 0 on non-aio compiled case.Jeremy Allison2010-06-041-1/+1
|
* Rename req -> smbreq.Jeremy Allison2010-06-041-26/+26
|
* Change smbd_aio_complete_mid() -> smbd_aio_complete_aio_ex(). SimplifiesJeremy Allison2010-06-041-32/+4
| | | | | | the code and eliminates find_aio_ex(). Jeremy.
* Move to using a DATA_BLOB inside of struct aio_extra, not a char *.Jeremy Allison2010-06-021-16/+16
| | | | | | Will make using AIO in SMB2 easier. Jeremy.
* Don't use sigev_value.sival_int to just store the mid, use ↵Jeremy Allison2010-06-011-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.
* This patch looks bigger than it is. It does 2 things. 1). Renames smbpid -> ↵Jeremy Allison2010-05-071-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.
* Move to using 64-bit mid values in our internal open file database.Jeremy Allison2010-04-121-15/+23
| | | | | | | This will allow us to share logic much easier between SMB1 and SMB2 servers. Jeremy
* Fix issue with aio where r/w lock wasn't kept across aio read operations.Jeremy Allison2010-04-051-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
* Move initialize_async_io_handler() inside of smbd/aio.c.Jeremy Allison2010-04-011-34/+42
| | | | | | Call from actual aio read or write. No reason to call this globally on startup. Jeremy.
* Remove use of "int ret" when we already have errcode.Jeremy Allison2009-10-131-13/+8
| | | | Jeremy.
* Catch one more erroneous use of errno.Jeremy Allison2009-10-131-1/+1
| | | | Jeremy.
* correctly handle aio_error() and errnoOlaf Flebbe2009-10-131-29/+24
|
* allow for outstanding_aio_calls to be decrementedOlaf Flebbe2009-09-301-2/+4
|
* Don't defer a talloc_move'd pointer.Jeremy Allison2009-09-281-1/+1
| | | | Jeremy.
* s3: Change fsp->fsp_name to be an smb_filename struct!Tim Prouty2009-07-201-14/+14
|
* Set SIGRTMIN to NSIGTimur I. Bakeyev2009-06-081-3/+0
| | | | | | | | | | | | | | In the includes we define SIGRTMIN to 32 if it's not defined already. This value could be fairly low and it's better to use NSIG(number of defined signals) as the lower mark for the available signals. We have similar defenition in the source3/smbd/aio.c, which can be safely removed, as it comes from includes.h then. With regards, Timur Bakeyev. Signed-off-by: Stefan Metzmacher <metze@samba.org>
* Move down the become_root()/unbecome_root() calls into the VFS modulesVolker Lendecke2009-05-181-6/+0
| | | | | | The aio_fork module does not need this, as it does not communicate via signals but with pipes. Watching a strace log with those become_root() calls in aio.c is absolutely awful, and it does affect performance.
* s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher2009-03-231-8/+5
| | | | | | | | | We keep the seqnum/mid mapping in the smb_request structure. This also moves one global variable into the smbd_server_connection struct. metze
* s3:signing: the seqnum should only be decremented by 1 for ntcancel requestsStefan Metzmacher2009-03-061-4/+4
| | | | | | | | | [MS-SMB] 3.3.5.1 Receiving Any Message says that the seqnum is incremented by only for ntcancel requests for any other request it's by incremented by 2, even if it doesn't expect a response. metze
* s3 oplocks: Make the level2 oplock contention API more granularTim Prouty2009-02-091-1/+3
| | | | | | | | | | | | | | | | | | This replaces release_level2_oplocks_on_change with contend_level2_oplock_begin/end in order to contend level2 oplocks throughout an operation rather than just at the begining. This is necessary for some kernel oplock implementations, and also lays the groundwork for better correctness in Samba's standard level2 oplock handling. The next step for non-kernel oplocks is to add additional state to the share mode lock struct that prevents any new opens from granting oplocks while a contending operation is in progress. All operations that contend level 2 oplocks are now correctly spanned except for aio and synchronous writes. The two write paths both have non-trivial error paths that need extra care to get right. RAW-OPLOCK and the rest of 'make test' are still passing with this change.
* S3: New module interface for SMB message statistics gatheringtodd stecher2009-02-091-3/+5
| | | | | | | This changelist allows for the addition of custom performance monitoring modules through smb.conf. Entrypoints in the main message processing code have been added to capture the command, subop, ioctl, identity and message size statistics.
* Remove the global variable "chain_size"Volker Lendecke2009-01-311-4/+2
|
* s3:smbd: convert aio to use tevent_signalStefan Metzmacher2009-01-271-100/+50
| | | | metze
* s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher2009-01-081-16/+10
| | | | | | The goal is to move all this variables into a big context structure. metze