summaryrefslogtreecommitdiff
path: root/source3/smbd/aio.c
AgeCommit message (Collapse)AuthorFilesLines
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.
2009-10-13Remove use of "int ret" when we already have errcode.Jeremy Allison1-13/+8
Jeremy.
2009-10-13Catch one more erroneous use of errno.Jeremy Allison1-1/+1
Jeremy.
2009-10-13correctly handle aio_error() and errnoOlaf Flebbe1-29/+24
2009-09-30allow for outstanding_aio_calls to be decrementedOlaf Flebbe1-2/+4
2009-09-28Don't defer a talloc_move'd pointer.Jeremy Allison1-1/+1
Jeremy.
2009-07-20s3: Change fsp->fsp_name to be an smb_filename struct!Tim Prouty1-14/+14
2009-06-08Set SIGRTMIN to NSIGTimur I. Bakeyev1-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>
2009-05-18Move down the become_root()/unbecome_root() calls into the VFS modulesVolker Lendecke1-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.
2009-03-23s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher1-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
2009-03-06s3:signing: the seqnum should only be decremented by 1 for ntcancel requestsStefan Metzmacher1-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
2009-02-09s3 oplocks: Make the level2 oplock contention API more granularTim Prouty1-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.
2009-02-09S3: New module interface for SMB message statistics gatheringtodd stecher1-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.
2009-01-31Remove the global variable "chain_size"Volker Lendecke1-4/+2
2009-01-27s3:smbd: convert aio to use tevent_signalStefan Metzmacher1-100/+50
metze
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-16/+10
The goal is to move all this variables into a big context structure. metze
2008-11-08Remove a direct inbuf reference (should have been removed with 8987641d...)Volker Lendecke1-1/+1
2008-11-04Rewrite aio.c to keep the whole smb_request structure, not just the inbufVolker Lendecke1-75/+41
2008-11-04Add construct_reply_common_req wrapperVolker Lendecke1-1/+1
The goal is to remove the remaining direct calls to construct_reply_common.
2008-11-04Fix nonempty blank linesVolker Lendecke1-3/+3
2008-11-04Use talloc for struct aio_extraVolker Lendecke1-27/+14
2008-11-03Make a comment match its function definitionVolker Lendecke1-1/+1
2008-11-02Make a [un]become_root wrap a bit tighterVolker Lendecke1-7/+11
Sooner or later this would bite us.
2008-11-02Remove a bunch of direct inbuf references by adding "vwv" to smb_requestVolker Lendecke1-3/+3
2008-09-15Fix aio on FreeBSD.Timur1-1/+16
2008-08-26become root for AIO operationsAndrew Tridgell1-1/+7
We need to become root for AIO read and write to allow the AIO thread to send a completion signal to the parent process when the IO completes (This used to be commit c548e5c69f9d8bc85a654f4d29d64c735a5e780b)
2008-02-24Allow "max mux" async i/o requestsVolker Lendecke1-5/+9
In the negprot reply, we allowed the client to issued "max mux" concurrent requests. The OS might allow less, for example AFAIK AIX has a configurable limit of concurrent AIO requests. We will fall back to sync operation for the requests that are too many when aio_read/aio_write return an error. Jeremy, please check! (This used to be commit 8f86f7f25c4eb71bbdfcc6bf2d12eaaae9a8d9ec)
2008-02-24Export aio_request_done()Volker Lendecke1-3/+9
This is for external modules implementing the Posix AIO API that not necessarily depend on the signal mechanism to indicate completion. (This used to be commit 9a069d306bb6f8a2cd51b8ba87b433884942d13f)
2008-02-24AIO on streams does not work (yet...)Volker Lendecke1-0/+12
(This used to be commit 1ba223f202a070a695581e0d7161473a3ebf4332)
2008-02-19Update position information also for AIOVolker Lendecke1-0/+5
Necessary to survive RAW-SEEK with AIO enabled. Jeremy, please check! (This used to be commit e2ca12c2345c0e3916dd09d097b2ba1ce2989fa8)