Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Using the standard macro makes it easier to move code into common, as
TALLOC_ZERO_P isn't standard talloc.
|
|
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
|
|
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Thu May 5 21:38:23 CEST 2011 on sn-devel-104
|
|
|
|
Guenther
Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Apr 29 14:00:30 CEST 2011 on sn-devel-104
|
|
Guenther
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
Jeremy.
|
|
Refuse async I/O if we can't set up the signal handler
|
|
|
|
Jeremy.
|
|
|
|
|
|
|
|
|
|
the code and eliminates find_aio_ex().
Jeremy.
|
|
Will make using AIO in SMB2 easier.
Jeremy.
|
|
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.
|
|
smblctx in our locking code. 2). Widens smblctx to 64-bits internally. Preparing to use the SMB2 handle as the locking context.
Jeremy.
|
|
This will allow us to share logic much easier between SMB1 and SMB2
servers.
Jeremy
|
|
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
|
|
Call from actual aio read or write. No reason to call this globally on startup.
Jeremy.
|
|
Jeremy.
|
|
Jeremy.
|
|
|
|
|
|
Jeremy.
|
|
|
|
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>
|
|
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.
|
|
We keep the seqnum/mid mapping in the smb_request structure.
This also moves one global variable into the
smbd_server_connection struct.
metze
|
|
[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
|
|
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.
|
|
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.
|
|
|
|
metze
|
|
The goal is to move all this variables into a big context structure.
metze
|
|
|
|
|
|
The goal is to remove the remaining direct calls to construct_reply_common.
|
|
|
|
|
|
|
|
Sooner or later this would bite us.
|