1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-24 02:04:21 +03:00

221 Commits

Author SHA1 Message Date
Jeremy Allison
fb3e4b8797 Fix to allow blocking lock notification to be done rapidly (no wait
for smb -> smb lock release). Adds new PENDING_LOCK type to lockdb
(does not interfere with existing locks).
Jeremy.
(This used to be commit 766928bbba1e597c9c2b12458dd8d37e6080593e)
2003-02-27 01:04:34 +00:00
Andrew Bartlett
98410be607 Merge off-by-one fix from HEAD (caused crash with --enable-developer)
(This used to be commit d71425413075af25f91f715950c06ab698cf5fb7)
2003-02-24 03:03:15 +00:00
Jeremy Allison
285a3b0ef8 When checking is_locked() new WRITE locks conflict with existing READ locks even
if the context is the same. See LOCKTEST7 in smbtorture.
Jeremy.
(This used to be commit 1698092ba5a169de369ad1182a6f270de174c3f5)
2003-02-22 01:09:57 +00:00
Jeremy Allison
7fe6742d04 Fixes for HPUX only having limited POSIX lock range from Michael Steffens <michael.steffens@hp.com>
Jeremy.
(This used to be commit e9b4fb8b9aedda9afc01af976264298002be3096)
2003-02-12 20:40:29 +00:00
Andrew Bartlett
8a20407442 Cleanups: (merge from HEAD)
- use safe_strcpy() instead of pstrcpy() for malloc()ed strings

 - CUPS: a failure in an attempt to automaticly add a printer is not level 0 stuff.

 - Fix up a possible Realloc() failure segfault

Andrew Bartlett
(This used to be commit c1cfc296c2efdb2b5972202146e80f0e3b6a3da4)
2003-02-10 11:47:21 +00:00
Jeremy Allison
20f1cf6cdc Fix problem with "hide unreadable". stat file opens are baaack :-).
Jeremy.
(This used to be commit 62038a0abf193d4dc4f37c31ac77216a10f6f326)
2003-01-03 18:50:13 +00:00
Jeremy Allison
ef8bd7c4f7 Forward port the change to talloc_init() to make all talloc contexts
named. Ensure we can query them.
Jeremy.
(This used to be commit 09a218a9f6fb0bd922940467bf8500eb4f1bcf84)
2002-12-20 20:21:31 +00:00
Jeremy Allison
de474974ea Lots of fixes for error paths where tdb_fetch() data need freeing.
Found via a post from Arcady Chernyak <Arcady.Chernyak@efi.com>.
Jeremy.
(This used to be commit 5d5762d1787db4392d2dff16024097c638b2d494)
2002-11-23 02:52:36 +00:00
Gerald Carter
a834a73e34 sync'ing up for 3.0alpha20 release
(This used to be commit 65e7b5273bb58802bf0c389b77f7fcae0a1f6139)
2002-09-25 15:19:00 +00:00
Andrew Tridgell
e90b652848 updated the 3.0 branch from the head branch - ready for alpha18
(This used to be commit 03ac082dcb375b6f3ca3d810a6a6367542bc23ce)
2002-07-15 10:35:28 +00:00
Jeremy Allison
c90cd26e94 Fix the mp3 rename bug - also tidy up our open code and remove the special
cases for rename and unlink. Had to add desired_access into the share mode record.
Jeremy.
(This used to be commit 3b1b8ac43535fb0839c5474fa55bf7150f6cde31)
2002-03-23 02:57:44 +00:00
Andrew Tridgell
7d4378cc89 if our lock spin code fails then return the first error code, not the
last one. This is what caused the lock1 and lock2 tests to fail.
(This used to be commit e7ae8003cb4fdc93db5f842754884a6d2ec93dc0)
2002-03-15 09:51:37 +00:00
Jeremy Allison
d6d9e385cc Use sys_usleep not usleep.
Jeremy.
(This used to be commit 8587dd95f850b4c6d2f015fe97ef98759ee8c236)
2002-03-14 01:05:34 +00:00
Jeremy Allison
f9af25c4ec Ensure we attempt to lock at least once. Only sleep if time param set.
Jeremy.
(This used to be commit 62b80d5c65ae8cf35347ee5c3d21ce1702c6449e)
2002-03-13 20:49:57 +00:00
Jeremy Allison
5e3b923124 include/smb_macros.h: Don't round up an allocation if the size is zero.
"One of these locks is not like the others... One of these locks is not
quite the same" :-). When is a zero timeout lock not zero ? When it's
being processed by Windows 2000 of course.. This code change, ugly though
it is - completely fixes the foxpro/access multi-user file system database
problems that people have been having. I used a *wonderful* test program
donated by "Gerald Drouillard" <gerald@drouillard.ca> which allowed me
to completely reproduce this problem, and to finally determine the correct
fix. This also explains why Windows 2000 is *so slow* when responding to
the smbtorture lock tests. I *love* it when all these things come together
and finally make sense :-).
Jeremy.
(This used to be commit 8aa9860ea2ea7f5aed4b6aa12794fffdfa81b0d0)
2002-03-13 20:28:19 +00:00
Andrew Tridgell
be389e25dd this attempts to handle the rather bizarre lock cache semantics in
w2k. It isn't entirely accurate, but its close
(This used to be commit e02d7364707c4939efa4ff0ddf9b6d4f48e5d411)
2002-03-10 23:17:07 +00:00
Andrew Tridgell
d160b35240 accept the 0/0 lock but don't treat it in any sort of special way
(This used to be commit 8f7bf38de16a1f5316aa6a413fb697c43862c4c6)
2002-03-05 19:54:45 +00:00
Tim Potter
cd68afe312 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
(This used to be commit 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
2002-01-30 06:08:46 +00:00
Jeremy Allison
c1efcac59c Debugs that print out a share mode table in debug level 10. This code
enabled me to track down a *nasty* bug.
Jeremy.
(This used to be commit ed5a9a0ee32aec460b9247ab4e4f5e38e8149e08)
2002-01-08 00:52:36 +00:00
Jeremy Allison
86b3aeb42a Added DEBUG in set_share_mode to track down logic insanity.
Jeremy.
(This used to be commit 32f4f3a45d473b3be1ae07f6c60897c12323d60c)
2002-01-05 02:37:23 +00:00
Tim Potter
95a4903b20 Removed unused function, delete_fn()
(This used to be commit f26e8205cff63967b9c1659b8e6ad71cbe36dace)
2001-12-18 05:04:09 +00:00
Jeremy Allison
9e88a7ebe9 After conversations with Andrew, improved the robustness of the
sharemode db in the following way.

Originally, on startup and shutdown, smbd would scan the share mode
db to ensure it was correct. This lead to scalability issues as
scans lock the db for quite a long time. Andrew had the brainstorm
that we only care about the record we're about to read.

This new code (small change really, but quite significant) causes
get_share_modes() to do a process_exists() call against each pid
in each record, and to delete any that don't and re-write the
entry if any dead records were detected.

This allowed me to remove the startup/shutdown scans of the
db (they can be added into smbstatus if anyone really cares to
have them back). This will please the vfs author who was worried
about the time taken on open() calls, and will lead to much
greater robustness and scalability in the share mode db.

We need much testing of this, and also netbench tests to
ensure the extra process_exists() calls don't hurt performance
(they shouldn't it's a very simple system call).

Jeremy.
(This used to be commit 4098d442030e66601450baeb09ae06b39a1ab571)
2001-11-30 01:59:03 +00:00
Jeremy Allison
e5c5adb197 Don't scan locking db on closedown.
Jeremy.
(This used to be commit 59cfcd8a6c510204ac059a0d2fddc2fa17199f82)
2001-11-21 04:00:35 +00:00
Jeremy Allison
88b55f47b4 Move from timestamp to gen count file id's for finding oplocked files
in a tdb.
Jeremy.
(This used to be commit 058ae6b58f61ef46013dd076af3a84de5fbaaab1)
2001-10-20 21:59:34 +00:00
Jeremy Allison
07f54cb592 Ensure we mask off deny modes correctly on being set (this shouldn't have
caused problems but is tidier).
Fix debug statement in locking.c
Jeremy.
(This used to be commit eac6bbd24ebf00b35e50953bc11186111dc39059)
2001-10-19 23:56:21 +00:00
Tim Potter
dc1fc3ee8e Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header.
(This used to be commit 2d0922b0eabfdc0aaf1d0797482fef47ed7fde8e)
2001-10-02 04:29:50 +00:00
Jeremy Allison
8c8b9c69e5 Removed test code that got added by accident.
Jeremy.
(This used to be commit fc91ecc236e0d27f5836e9820332ababd762f1a7)
2001-09-19 06:49:02 +00:00
Jeremy Allison
5bc82e443b Correct fix for unaligned memcpy - malloc'ed memory incremented by sizeof(struct locking_data)
was not forced to be 8 byte aligned. Use union to force it to be correctly aligned
for memcpy and use void *, to tell compiler not to optimize aligned copy (this last fix
suggested by Trond @ RedHat). The first fix should be sufficient, but this provides a
"belt and braces" fix.
Jeremy.
(This used to be commit 22c5915bb466529ac1bcb5c2574888b360a9775b)
2001-09-18 06:41:29 +00:00
Jeremy Allison
36a6611da2 Use structure copy to fix unaligned accesses on 64bit architectures on
Linux.
Jeremy.
(This used to be commit b4b891279b6292237113456f1bb0d4393f1f9af1)
2001-09-18 06:20:28 +00:00
Simo Sorce
81fdc3c3f7 move to SAFE_FREE()
(This used to be commit e61aec84edaf55b9ee087b076d2f1311033dc839)
2001-09-17 04:16:35 +00:00
Jeremy Allison
83ebf2b6b2 Fix the 62bit locking onto 32 bit NFS mounts problem generically for HPUX.
Don. please check this out.
Jeremy.
(This used to be commit ce9f95996498f7795aaef069e1443ea1c7d524b3)
2001-09-06 22:43:21 +00:00
Andrew Tridgell
9a9ac2739b got rid of USE_TDB_MMAP_FLAG as its not needed any more
(This used to be commit c26e0d3f27a05ecc8bd2390f9aab7f9451524e47)
2001-09-06 22:08:19 +00:00
Andrew Tridgell
9ef7a6c786 use NTSTATUS not BOOL in do_lock()
(This used to be commit b1b2a5fa5d084dad8ae47777419ab75db1e51eff)
2001-09-06 01:19:35 +00:00
Andrew Tridgell
4f0509aeeb 2nd DELETE_ON_CLOSE_FLAG fix ...
we set the DELETE_ON_CLOSE_FLAG on all share modes on the file, which
means the share mode in the fsp will not match the one in the tdb when
we come to close for other file handles, which means we end up with
share modes on files after all handles are closed

fixed by making the comparison function that says if two shares modes
are equal ignore the DELETE_ON_CLOSE_FLAG
(This used to be commit 7b39c4c59897669106d7129bad8af3d592d25838)
2001-09-05 21:39:43 +00:00
Jeremy Allison
d3518f1d8a NFS v2 can return ENOLCK when greater than 31 bit offsets are used.
Treat this the same as an EFBIG error.
Jeremy
(This used to be commit 8fad5177701c1738a7f5bdd7c0082ef23a00b876)
2001-09-05 00:05:07 +00:00
Andrew Tridgell
19fea3242c the next stage in the NTSTATUS/WERROR change. smbd and nmbd now compile, but the client code still needs some work
(This used to be commit dcd6e735f709a9231860ceb9682db40ff26c9a66)
2001-09-04 07:13:01 +00:00
Andrew Tridgell
b031af348c converted another bunch of stuff to NTSTATUS
(This used to be commit 1d36250e338ae0ff9fbbf86019809205dd97d05e)
2001-08-27 19:46:22 +00:00
Andrew Tridgell
ee5f7237de started converting NTSTATUS to be a structure on systems with gcc in order to make it type incompatible with BOOL so we catch errors sooner. This has already found a number of bugs
(This used to be commit 1b778bc7d22efff3f90dc450eb12baa1241cf68f)
2001-08-27 17:52:23 +00:00
Andrew Tridgell
e8e98c9ea0 converted smbd to use NTSTATUS by default
major changes include:

- added NSTATUS type
- added automatic mapping between dos and nt error codes
- changed all ERROR() calls to ERROR_DOS() and many to ERROR_NT()
  these calls auto-translate to the client error code system
- got rid of the cached error code and the writebmpx code

We eventually will need to also:
- get rid of BOOL, so we don't lose error info
- replace all ERROR_DOS() calls with ERROR_NT() calls

but that is too much for one night
(This used to be commit 83d9896c1ea8be796192b51a4678c2a3b87f7518)
2001-08-27 08:19:43 +00:00
Jeremy Allison
4a3f07456d Ignore locks of length zero as they mean different things in Win32
and POSIX.
Jeremy.
(This used to be commit bd9cbf4c6883c1a39f28db8afa7cc0bd04b1b09f)
2001-08-26 19:39:40 +00:00
Jeremy Allison
10c240ef97 Don't use CLEAR_IF_FIRST if opening read-only.
Jeremy.
(This used to be commit f5ba19c12989dd1e996473869468afcfc5dce72e)
2001-08-26 19:27:18 +00:00
Andrew Tridgell
c1598db18e we now have all but the dreaded 0/0 lock working
(This used to be commit 98b6aef18c793187f392f944af516c8b9ebf86e9)
2001-08-24 21:09:38 +00:00
Andrew Tridgell
7874b0ac17 0 byte lock ranges ARE valid
(This used to be commit 5498da6664a457e4d64502d37fa887dabd9baaa0)
2001-08-24 04:55:28 +00:00
Jeremy Allison
85e063f5b8 Tidyup fixes for fcntl spin problem.
Jeremy.
(This used to be commit 27d3dd0e7cb777ef6b21d6966c07045c2940fd37)
2001-08-22 01:01:37 +00:00
Jeremy Allison
e4275a35a6 Fixed the (incorrect) paranioa fix I put in for the fcntl lock spin.
Don't delete a share mode that failed to remove the oplock (doh!),
just set the oplock entry to zero....
Jeremy.
(This used to be commit fe4aa720181a43f7a636ca029680fab0c836b968)
2001-08-22 00:29:40 +00:00
Jeremy Allison
dd53785225 Missed uninitialized variable return for del_share_mode().
Jeremy.
(This used to be commit e4a57fb45660b82eaec751f1b41f657a64d963fd)
2001-08-21 18:33:58 +00:00
Volker Lendecke
e6a6dee027 This is Jeremy pretending to be Volker, 'cos the
link from Seattle is having problems.
I've added 3 things here to work on the fcntl spin
problem.
1). Check *all* tdb return codes... :-).
2). If we're asking ourselves to break an oplock, and we can't
find a fsp pointer that matches the entry, this is a *logic bug*
and we should abort and panic so someone with gdb can pick up
the pieces.
3). After we've broken an oplock, ensure that the entry itself
has been removed, and if not remove it ourselves. This should
not be neccessary in a correctly working environmen,t, but will
provide an added layer of robustness in error situations.
4). I hate german keyboards :-) :-).
Jeremy.
(This used to be commit 1c94fa80646f9e31377fbb41332fe4780f550cab)
2001-08-21 01:25:45 +00:00
Jeremy Allison
c786a4d89a Ensure we are very explicit about what we're comparing when
we're comparing structures (ie. don't just do a memcmp). I
don't think this will fix the fcntl spin issue, but it's a
"just in case" change.
Jeremy.
(This used to be commit 41066208ad8ca20d35a32bdf9ad934e11465c8f1)
2001-08-20 22:13:53 +00:00
Jeremy Allison
e430190a66 Add printing of errno when POSIX lock requests fail.
Jeremy.
(This used to be commit befbfea21035b0566fc6ba8674587fc44ad7bbdc)
2001-08-13 17:58:54 +00:00
Simo Sorce
2e783a4707 this is a big global fix for the ptr = Realloc(ptr, size) bug.
many possible mem leaks, and segfaults fixed.

someone should port this fix to 2.2 also.
(This used to be commit fa8e55b8b465114ce209344965c1ca0333b84db9)
2001-08-12 17:30:01 +00:00