1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-18 19:17:08 +03:00

348 Commits

Author SHA1 Message Date
Stefan Metzmacher
90674f0fce s3:smbd/oplock: pass sconn as private_data to process_kernel_oplock_break()
metze
2011-12-13 20:31:09 +01:00
Stefan Metzmacher
7fee41cd39 s3:smbd/oplock: pass sconn as private_data to process_oplock_break_response()
metze
2011-12-13 20:31:09 +01:00
Stefan Metzmacher
fb81772eed s3:smbd/oplock: pass sconn as private_data to process_oplock_async_level2_break_message()
metze
2011-12-13 20:31:09 +01:00
Stefan Metzmacher
da4b503581 s3:smbd/oplock: pass sconn as private_data to process_oplock_break_message()
metze
2011-12-13 20:31:09 +01:00
Stefan Metzmacher
21de673575 s3:smbd/oplock: pass smbd_server_connection to init_oplocks()
metze
2011-12-13 20:31:09 +01:00
Stefan Metzmacher
68a7be6ab4 s3:smbd/oplock: avoid using server_event_context() in add_oplock_timeout_handler()
metze
2011-12-12 14:35:43 +01:00
Volker Lendecke
14d3889285 s3: Fix some 64-bit warnings 2011-12-08 15:03:42 +01:00
Volker Lendecke
1c46fb5c3e s3: Use autogenerated open_files.idl 2011-12-02 22:43:05 +01:00
Volker Lendecke
502fdae7f1 s3: Pass sconn explicitly to schedule_deferred_open_message_smb 2011-08-02 19:18:08 +02:00
Volker Lendecke
77f5246f09 s3: Fix some nonempty blank lines 2011-08-02 19:18:08 +02:00
Andrew Bartlett
b373d0e777 s3-build: Provide a run-time shim to work around duplicate symbols
The become_root() and similar 'smbd' functions that are used widely in
Samba libraries had 'dummy' copies in dummysmbd.c and dummyroot.c.

These have been replaced by a runtime plugin mechanim, which ensures
that standlone binaries still do nothing, while in smbd the correct
function is used.

This avoids having these as duplicate symbols in the smbd binary,
which can cause unpredictable behaviour.

Andrew Bartlett

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-06-21 15:54:51 +10:00
Andrew Bartlett
16b1c77644 lib/util Bring procid_str() into lib/util as server_id_string()
This is needed for OpenChange, which prints Samba struct server_id
values in debug messages.

Andrew Bartlett
2011-06-09 12:40:09 +02:00
Andrew Bartlett
3d15137653 s3-talloc Change TALLOC_ARRAY() to talloc_array()
Using the standard macro makes it easier to move code into common, as
TALLOC_ARRAY isn't standard talloc.
2011-06-09 12:40:08 +02:00
Andrew Bartlett
e5dd03d199 s3-globals Remove smbd_event_context() (use server_event_context())
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-31 00:32:07 +02:00
Günther Deschner
ab36d597e7 s3-messages: make ndr_messaging.h part of messages.h.
Guenther
2011-03-30 01:13:09 +02:00
Günther Deschner
b2af281e50 s3-messages: only include messages.h where needed.
Guenther
2011-03-30 01:13:09 +02:00
Günther Deschner
8c24ebf371 s3: include smbd/smbd.h where needed.
Guenther
2011-03-30 01:13:08 +02:00
Andrew Bartlett
09c4a5cd9b s3-cluster Always fill in the clustering vnn element
This avoids this structure being partially uninitialised.

Adnrew Bartlett
2011-02-17 16:02:19 +01:00
Jeremy Allison
ece94989b8 Move the "oplock file with byte range locks" check to the correct place, where we're making oplock decisions.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Sat Feb  5 01:18:14 CET 2011 on sn-devel-104
2011-02-05 01:18:14 +01:00
Pavel Shilovsky
6696fd1c1e Ensure we send the direct levelII oplock break to the correct fid.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Tue Feb  1 00:39:56 CET 2011 on sn-devel-104
2011-02-01 00:39:56 +01:00
Pavel Shilovsky
7690d9d70c Fix bug #7928 - Samba problems with kernel oplocks option set to "no"
We should not grant levelII oplocks on a file with existing
byte range locks.
2011-01-31 12:00:15 -08:00
Jeremy Allison
b97f1ce68a Add name_hash into the share mode entry struct (as yet only use for renames to identify a specific path). 2011-01-25 14:01:52 -08:00
Volker Lendecke
615482a83d s3: Hang the isilon kernel oplocks off the NULL context
All I see is a fd_event that does not need a special destructor.

Tim, Steven, I've added the #error as well for you to remove after review.

Thanks,

Volker

Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Oct  8 20:48:11 UTC 2010 on sn-devel-104
2010-10-08 20:48:11 +00:00
Volker Lendecke
703e438599 s3: Hang the irix kernel oplocks off the NULL ctx
Just a fd_event to be cleaned up. The pipe is closed implicitly.
2010-10-08 21:11:46 +02:00
Volker Lendecke
613a0b6c00 s3: Hang the linux kernel oplocks off the NULL ctx
The destructor that is called removes the signal handler. But at process
exit the signal handling is lost anyway.
2010-10-08 21:11:46 +02:00
Volker Lendecke
ea08cd280c s3: Stop using the write cache after an oplock break
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Tue Oct  5 10:09:38 UTC 2010 on sn-devel-104
2010-10-05 10:09:38 +00:00
Volker Lendecke
554f5e7c60 s3: Remove smbd_server_conn from process_kernel_oplock_break 2010-10-03 18:17:08 +02:00
Volker Lendecke
5d1d575e87 s3: Remove smbd_server_conn from process_oplock_break_message 2010-10-03 18:17:08 +02:00
Volker Lendecke
35d6d44e5a s3: Remove smbd_server_conn from process_oplock_async_level2_break_message 2010-10-03 18:17:08 +02:00
Volker Lendecke
1d3aa74e4c s3: Lift smbd_server_conn from initial_break_processing 2010-10-03 18:17:08 +02:00
Volker Lendecke
b448e42de4 s3: Lift smbd_server_conn from file_find_dif 2010-09-28 07:36:16 +02:00
Volker Lendecke
1808dd0a85 s3: Make srv_send_smb take an sconn instead of a sock fd 2010-08-24 21:06:41 +02:00
Volker Lendecke
7c0c7f3337 s3: Remove smbd_server_fd from send_break_message_smb1 2010-08-16 22:39:16 +02:00
Volker Lendecke
75e16757e3 s3: Remove smbd_messaging_context() from contend_level2_oplocks_begin_default() 2010-07-05 11:06:27 +02:00
Volker Lendecke
d1587f9924 s3: Remove smbd_messaging_context() from reply_to_oplock_break_requests() 2010-07-05 11:06:27 +02:00
Volker Lendecke
2d7cce6b7c s3: Remove procid_self() from break_kernel_oplock() 2010-07-05 11:06:25 +02:00
Volker Lendecke
a529fbb713 s3: Remove smbd_server_conn from break_level2_to_none_async 2010-06-12 15:42:55 +02:00
Jeremy Allison
d28fa8faab Rename "allow_smb2" -> "using_smb2" and make the usage clearer. 2010-06-09 19:12:02 -07:00
Jeremy Allison
895b99fd6b Be more forgiving on client oplock break failure (as Windows does). Remove a global.
Jeremy.
2010-05-13 11:33:02 -07:00
Jeremy Allison
1101c62144 Pass more SMB2 oplock tests. Only oplock stream tests left to fix.
Jeremy.
2010-05-12 15:19:45 -07:00
Günther Deschner
c6ebab846d s3: only include gen_ndr headers where needed.
This shrinks include/includes.h.gch by the size of 7 MB and reduces build time
as follows:

ccache build w/o patch
real    4m21.529s
ccache build with patch
real    3m6.402s

pch build w/o patch
real    4m26.318s
pch build with patch
real    3m6.932s

Guenther
2010-05-06 00:22:59 +02:00
Jeremy Allison
a796542a93 Implement oplocks within SMB2. Plumb into the existing SMB1 oplock system.
Seems to work but needs more tests (to be added).

Jeremy.
2010-04-24 00:29:41 -07:00
Jeremy Allison
7984243768 Move to using 64-bit mid values in our internal open file database.
This will allow us to share logic much easier between SMB1 and SMB2
servers.

Jeremy
2010-04-12 21:40:28 -07:00
Jeremy Allison
e15939b456 Plumb SMB2 stubs into all the places we defer SMB1 operations.
Rename functions to be internally consistent. Next step is
to cope queueing single (non-compounded) SMB2 requests to
put some code inside the stubs.

Jeremy.
2010-04-09 19:26:34 -07:00
Jeremy Allison
3413cf7a6b Start to plumb smb2 into the oplock system. Calls dummy functions for now.
Jeremy.
2010-04-07 19:00:44 -07:00
Volker Lendecke
41a350f17e s3: Fix a typo 2010-01-19 16:53:11 +01:00
Volker Lendecke
7d04c0fcfd s3: Remove a comment from ancient times that no longer applies 2010-01-19 14:20:07 +01:00
Volker Lendecke
b067a5e4e8 s3: Remove debug_ctx()
smbd just crashed on me: In a debug message I called a routine preparing a
string that itself used debug_ctx. The outer routine also used it after the
inner routine had returned. It was still referencing the talloc context
that the outer debug_ctx() had given us, which the inner DEBUG had already
freed.
2009-11-03 11:30:00 +01:00
Tim Prouty
5a8d70d465 s3: Change fsp->fsp_name to be an smb_filename struct! 2009-07-20 17:26:56 -07:00
Volker Lendecke
3c10d06524 We have to deny a level 2 oplock if kernel oplocks are enabled
The second r/o opener of a file is supposed to get a level2 oplock. The first
opener due to the protection in process_oplock_break_message() has been forced
to break to no oplock. The second opener according to locking.tdb gets a level2
oplock. Further down in open_file_ntcreate we try to set this level2 oplock in
the kernel, and the non-clustered Linux kernel disallows this. The rules for
the kernel leases are a bit baroque, but the attempt to do the SETLEASE
correctly fails and we end up with no oplock for any client.

In the clustered case however the linux kernel on the second opening node has
not seen the open fd of the first node, it is only the cluster fs that has this
information. If the cluster fs does not have the very same notion of leases as
the local kernel has, we can end up with a WRLCK style kernel lease for the
second opener where locking.tdb only indicates a level2 oplock. Getting a
kernel oplock break signal with just a level2 oplock in locking.tdb is
something smbd is not prepared for. For example after sending out the break in
response to the kernel signal we set a timeout, waiting for a reply.

More work needs to be done to make level2 kernel oplocks real for us. This
patch addresses a real problem we have right now without them.
2009-04-12 14:56:23 +02:00