| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
condition, as we look for the entry before locking the chain - thus
someone else could have legitimately deleted it.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
| |
shutdown. I have just helped debug a very large Solaris server where
the traversal was taking so long that the clients timed out, created a
new process which in turn did a traversal!
we will need to find some other way of doing a brlock.tdb cleanup (if
its even needed at all)
|
|
|
|
|
| |
cases for rename and unlink. Had to add desired_access into the share mode record.
Jeremy.
|
|
|
|
| |
last one. This is what caused the lock1 and lock2 tests to fail.
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"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.
|
|
|
|
| |
w2k. It isn't entirely accurate, but its close
|
| |
|
|
|
|
| |
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
|
|
|
|
|
| |
enabled me to track down a *nasty* bug.
Jeremy.
|
|
|
|
| |
Jeremy.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
in a tdb.
Jeremy.
|
|
|
|
|
|
| |
caused problems but is tidier).
Fix debug statement in locking.c
Jeremy.
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Linux.
Jeremy.
|
| |
|
|
|
|
|
| |
Don. please check this out.
Jeremy.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Treat this the same as an EFBIG error.
Jeremy
|
|
|
|
| |
the client code still needs some work
|
| |
|
|
|
|
| |
to make it type incompatible with BOOL so we catch errors sooner. This has already found a number of bugs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
and POSIX.
Jeremy.
|
|
|
|
| |
Jeremy.
|
| |
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
| |
Don't delete a share mode that failed to remove the oplock (doh!),
just set the oplock entry to zero....
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
| |
many possible mem leaks, and segfaults fixed.
someone should port this fix to 2.2 also.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
lockingX calls - use that instead of smb_pid in the packet.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
Clarion locktest.
Jeremy.
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|