1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-28 00:49:42 +03:00

21 Commits

Author SHA1 Message Date
Tim Potter
23443e3aa0 Fix more 64-bit printf warnings. -
Jeremy Allison
e065c3a58f Fix from Steve G <linux_4ever@yahoo.com>. Ensure sigemptyset is called on
the sa_mask to prevent valgrind complaints.
Jeremy.
-
Andrew Tridgell
03a5e62300 merged real time signal fixes from head -
Andrew Bartlett
2a1adb8f81 Merge indirection, signed/unsigned and uninitialiased-value fixes from HEAD.
Andrew Bartlett
-
Andrew Tridgell
03ac082dcb updated the 3.0 branch from the head branch - ready for alpha18 -
Tim Potter
6a58c9bd06 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
-
Jeremy Allison
86c2f96366 Fixed unsigned / long unsigned format missmatch.
Jeremy
-
Jeremy Allison
058ae6b58f Move from timestamp to gen count file id's for finding oplocked files
in a tdb.
Jeremy.
-
Tim Potter
2d0922b0ea Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header. -
Andrew Tridgell
60d2973034 convert more code to using d_printf -
Andrew Tridgell
e2ecff419f fixed usage of socklen_t and also tidied up SIG_ATOMIC_T, using a typedef instead of a define -
Tim Potter
88a7b2c3f8 More compiler warning fixes. -
Jeremy Allison
b35ca2c6b1 Fix from matthew.hart@veritas.com - bad error return from linux_oplock_receive_message().
Jeremy.
-
Jeremy Allison
0be41d5158 Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMR
RPC code to merge with new passdb code.
Currently rpcclient doesn't compile. I'm working on it...
Jeremy.
-
Jeremy Allison
b737c784e3 Paranoia changes to ensure that anything touched by a signal handler
and the main code is declared as VOLATILE SIG_ATOMIC_T.
Jeremy.
-
Andrew Tridgell
c6be511fcc enable the Linux change notify code and change some notify debug code -
Andrew Tridgell
44766c39e0 totally rewrote the async signal, notification and oplock notification
handling in Samba. This was needed due to several limitations and
races in the previous code - as a side effect the new code is much
cleaner :)

in summary:

- changed sys_select() to avoid a signal/select race condition. It is a
  rare race but once we have signals doing notification and oplocks it
  is important.

- changed our main processing loop to take advantage of the new
  sys_select semantics

- split the notify code into implementaion dependent and general
  parts. Added the following structure that defines an implementation:

struct cnotify_fns {
	void * (*register_notify)(connection_struct *conn, char *path, uint32 flags);
	BOOL (*check_notify)(connection_struct *conn, uint16 vuid, char *path, uint32 flags, void *data, time_t t);
	void (*remove_notify)(void *data);
};


then I wrote two implementations, one using hash/poll (like our old
code) and the other using the new Linux kernel change notify. It
should be easy to add other change notify implementations by creating
a sructure of the above type.

- fixed a bug in change notify where we were returning the wrong error
  code.

- rewrote the core change notify code to be much simpler

- moved to real-time signals for leases and change notify

Amazingly, it all seems to work. I was very surprised!
-
Andrew Tridgell
cc0e919fdc a better test for oplocks being enabled in this kernel -
Andrew Tridgell
afa98d511f fixed Linux capabilities handling
I used a trick where CAP_LEASE isn't claimed until it is needed. This
means we avoid a system call per setreuid(), and never call capset()
unless a user tries to get a oplock on a file that they don't own
-
Andrew Tridgell
b28cc4163b Linux kernel oplocks now seem to work, but need a _lot_ of testing
I had to modify sys_select() to not loop on EINTR. I added a wrapper
called sys_select_intr() which gives the old behaviour.
-
Andrew Tridgell
3253085d98 a first pass at Linux kernel oplocks support -