Age | Commit message (Collapse) | Author | Files | Lines |
|
from the client requested access mask.
Jeremy.
(This used to be commit 12490fafc7f98952bf709c4c504f8f2b5646f197)
|
|
that create dispositions that cause O_TRUNC break
oplocks. This simplifies the code - although we have
to keep separate the client requested access mask and
the access mask we actually use to open the file.
Jeremy.
(This used to be commit 3bcd52a4752ec6c2a8f678afa3b7b3646103ad60)
|
|
(This used to be commit 40e267981174840f4f36d1863985ee010ef5074a)
|
|
file unless we really have to (ie. O_CREAT and file
doesn't exist).
Jeremy.
(This used to be commit 788aa15ea24e6dfb61820465b5b881829a64297a)
|
|
Jeremy.
(This used to be commit b3b5aec0eef3bdcae75ce79ffd3ecf21fb1279e7)
|
|
oplocks that were granted when we had released the lock. Fix
strange case where stat open grants a batch oplock on file
create, but grants no oplock on file open.
Jeremy.
(This used to be commit b7374835e6ec0c98fc4020623f0a37c0c173b8aa)
|
|
no way to get all the cases where kernel oplocks are
on and we can't open the file and get the correct
semantics (think about the open with truncate with
an attribute only open - we'd need a vfs change to
add the truncate(fname, len) call). So always drop
the share mode lock before doing any real fd opens and
then re-acquire it afterwards. We're already dealing
with the race in the create case, and we deal with
any other races in the same way. Volker, please
examine *carefully* :-). This should fix the problems
people reported with kernel oplocks being on.
Jeremy.
(This used to be commit 8171c4c404e9f382880c65daa0232f89e560f399)
|
|
be lp_lock_spin(). lock spin count is no longer
used. I'll update the man pages.
Jeremy.
(This used to be commit 0451a170c9be88399202abd225af35ddc45023f0)
|
|
Might need to be a parameter ?
Jeremy.
(This used to be commit 98d8d9399bb287319578daaf2a2fb42f3c48f858)
|
|
Jeremy.
(This used to be commit b5aaff665937313370e0e87225e146f9af7b7e67)
|
|
region between detecting a pending lock was needed
and when we added the blocking lock record. Make
sure that we hold the lock over all this period.
Removed the old code for doing blocking locks on
SMB requests that never block (the old SMBlock
and friends).
Discovered something interesting about the strange
NT_STATUS_FILE_LOCK_CONFLICT return. If we asked
for a lock with zero timeout, and we got an error
of NT_STATUS_FILE_LOCK_CONFLICT, treat it as though
it was a blocking lock with a timeout of 150 - 300ms.
This only happens when timeout is sent as zero and
can be seen quite clearly in ethereal. This is the
real replacement for old do_lock_spin() code.
Re-worked the blocking lock select timeout to correctly
use milliseconds instead of the old second level
resolution (far too coarse for this work).
Jeremy.
(This used to be commit b81d6d1ae95a3d3e449dde629884b565eac289d9)
|
|
Jeremy.
(This used to be commit b21ca265a25b3d1e4f154ce0ee4b8757b41cf910)
|
|
test. Phew - that was painful :-). But what it means
is that we now implement lock cancels and I can add
lock cancels into POSIX lock handling which will fix
the fast/slow system call issue with cifsfs !
Jeremy.
(This used to be commit f1a9cf075b87c76c032d19da0168424c90f6cb3c)
|
|
the snum,
and the decision which token to use (conn or vuser) does not really belong
here, it is better done in the two places where this is called.
Volker
(This used to be commit 0a138888adf7a0f04a38cd911e797e1a379e908b)
|
|
obey blocking/non-blocking request for POSIX locks.
Jeremy.
(This used to be commit f62c01316ef3ce0351f8b34229307a75d8f9f156)
|
|
fact that check_path_syntax() will convert '\\' characters to '/'.
When POSIX pathnames have been selected this doesn't happen, so we
must look for the unaltered separator of '\\' instead of the modified '/'.
Stevef please check this with the CIFSFS MS-DFS code !
Jeremy
(This used to be commit 883bb398e58f54ee79160487b49b79a4774ef939)
|
|
to do the upper layer directories but this is what
everyone is waiting for....
Jeremy.
(This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
|
|
Guenther
(This used to be commit 6bf350895a648ef9b824c94b894e8d7a8989eb97)
|
|
read ea's from an msdfs link. Stop it from doing that.
Jerry please merge to 3.0.23.
Jeremy.
(This used to be commit 95e5ace6b4f348a3244b6a3ea0fd8badf55271f5)
|
|
think this can happen in real life but the code is
too complicated to be sure....
Jerry please merge this for 3.0.23.
Jeremy.
(This used to be commit 1e5042d4c0d1a0d0a5cfbcb0d47815e1510ee52a)
|
|
Jeremy.
(This used to be commit d5c1028498de0346b7a35cc132b8081e04e639cc)
|
|
where we don't correctly check the return from memdup.
Jeremy.
(This used to be commit ce14daf51c7ee2f9c68c77f7f4674e6f0e35c9ca)
|
|
being deleted when hide unreadable set to true.
Here's the scoop.
This one is really interesting. The pattern of deleting a directory is to do a
findfirst to get the first part of the list, then for each name returned it
does a open/set delete on close/close -> thus deleting the file. Then it does a
findnext with the last file name THAT IT JUST DELETED ! Now we can handle this
in the findnext in the case where hide unreadable is set to false as we look
back in our cache of names and just seek to the right point. The bug is
actually fixed in the first hunk of this patch - the one that removes the
is_visible_file() check after SearchDir returns false. We don't actually need
it and in this case it's causing the delete to be aborted because it can't find
the name (doh ! it was just deleted). We don't need it as SearchDir is only
ever called from findnext, and findnext should only ever be returning names we
gave it.
The rest of the patch are the debugs I used to find
the problem but they're generically useful.
Phew - that one took a while to track down.....
Jerry, please merge for 3.0.23 final.
Jeremy.
(This used to be commit cd048cb775f0a8525fc19aa463db07c477521f5b)
|
|
share_mode struct. Allows us to know the unix
uid of the opener of the file/directory. Needed
for info level queries on open files.
Jeremy.
(This used to be commit d929323d6f513902381369d77bcd7b714346d713)
|
|
logic in smbd/process.c. All interested (Volker,
Jerry, James etc). PLEASE REVIEW THIS CHANGE.
The logic should be identical but *much* easier
to follow and change (and shouldn't confuse Klockwork :-).
Jeremy.
(This used to be commit d357f8b33594472ffa78d0a112accccc2a8b1fe7)
|
|
Jeremy.
(This used to be commit aa0d739834a286aeee88f76048dc347dd2852d09)
|
|
Jeremy.
(This used to be commit c430730f5a0dc00626b9b924e88adfb84cd48869)
|
|
Jeremy.
(This used to be commit 34b6b6723b1c87e19b0a51ef785a614d86bd5cef)
|
|
strict-aliasing rules" warning.
Jeremy.
(This used to be commit 7ac5aee88cae3400fb6400b3628544da2e474560)
|
|
int
in a format string.
Jeremy.
(This used to be commit face01ef01e1a3c96eae17c56cadf01020d4cb46)
|
|
int
in a format string.
Jeremy.
(This used to be commit 45d5cad8c2438c032d9f11c62a50a04d0637bf6c)
|
|
unsigned int
in a format string.
Jeremy.
(This used to be commit 3a15fff21988b426a514ad28060eaf0ddc17ef6b)
|
|
unsigned int
in a format string.
Jeremy.
(This used to be commit 952547471f03bd2da1eda0247471b17aa1ff15de)
|
|
(This used to be commit e56e3c19e1244e2b7409d57a030ca8b7ec446932)
|
|
Make 2 important changes. pdb_get_methods()
returning NULL is a *fatal* error. Don't try
and cope with it just call smb_panic. This
removes a *lot* of pointless "if (!pdb)" handling
code. Secondly, ensure that if samu_init()
fails we *always* back out of a function. That
way we are never in a situation where the pdb_XXX()
functions need to start with a "if (sampass)"
test - this was just bad design, not defensive
programming.
Jeremy.
(This used to be commit a0d368197d6ae6777b7c2c3c6e970ab8ae7ca2ae)
|
|
can return NULL. Ensure we check all returns correctly.
Jeremy.
(This used to be commit 6c61dc8ed6d84f310ef391fb7700e93ef42c4afc)
|
|
(This used to be commit 6c1f1c091f5e87bf9464fe8ad7eb2cb683819a62)
|
|
Found by Klocwork, ID 653.
Volker
(This used to be commit 4cb8cf221f986b15de3ac608b173310c14248533)
|
|
(This used to be commit 3a7d01afbebe5c4c36935b6128998e1327c8f856)
|
|
of UNIX_BASIC infolevel. Checked client implementations
(cifsfs and libsmb) and they ignore it. Thanks Volker.
Jeremy.
(This used to be commit 6cd1cb5c9deba2aa0d7a3251c8142834cbaba6d1)
|
|
a more specific probe to try and eliminate old, incompatible
DMAPI implementations provided by IRIX 6.4 and AIX 4.3.
(This used to be commit aafd4db457ce8a60c628d54a3ace3b97c8885dca)
|
|
the same place on error - I missed the extra free in
delay_for_oplocks).
Jeremy.
(This used to be commit 146a2648156563b41642d42c46aff401e435a42b)
|
|
Jeremy.
(This used to be commit 1117a327bd4fb425d25ea63df782095701fb83bb)
|
|
This allows a requestor to set FORCE_OPLOCK_BREAK_TO_NONE
to ensure we don't break to level 2. Fixed a couple
of resource leaks in error paths in open_file_ntcreatex.
Jeremy.
(This used to be commit c7c9adcce7f13d01445f31b07fb28a76f0a1d6df)
|
|
were getting away with mixing types. Not cool.
Jeremy.
(This used to be commit ad3bc112a21afd3a04449ec3f604e017d753c224)
|
|
mid replies on path based set-eof trans2 calls.
Needs modification for HEAD (as in head open_file_ntcreateX
properly returns NTSTATUS - I'll fix this tomorrow my
time). Secondly it still fails the Samba4 RAW-OPLOCK
smbtorture because of an interesting case. Our oplock
code always returns "break to level 2" if it can.
In this case (path-based set-eof or set-allocation size
on an exclusive oplocked file) W2K3 always sends a
break-to-none. We send the break to none (from level2)
after we've done the write for eof or allocation size.
I need to work out some way of telling our break code
to always break to none (might need to extend the message
field).
Jeremy.
(This used to be commit ad9895c654f400e242adcd4099f7cd004521ee92)
|
|
open_file_shared.
(This used to be commit 784126edff942d1c2f79f7c9feb59980426f331e)
|
|
track down #3308.
Jeremy.
(This used to be commit e39c11c91153c1ed547bc635d02769a1cdf3ecc0)
|
|
(This used to be commit c24bfdce625782637b5f4d11a5117ef795ddfc2f)
|
|
Jeremy.
(This used to be commit c66620770d2154543a6ec99d369771b339df5463)
|