Age | Commit message (Collapse) | Author | Files | Lines |
|
(This used to be commit 1e4ee728df7eeafc1b4d533240acb032f73b4f5c)
|
|
a POSIX lock (applying a read-lock) and we overlap
pending read locks then send them an unlock message,
we may have allowed them to proceed.
Jeremy.
(This used to be commit a7a0b6ba50f4cf7c5a0a29809fdff9e1266a29e7)
|
|
code with become_root_uid_only()/unbecome_root_uid_only()
pairs. This code needs working on.....
Jeremy.
(This used to be commit 0661d4e26614180636bc57de0c48adf8b9ce7a21)
|
|
acls code. I'm pretty sure this was safe, but become_root()
does other things to the token stack that become_root_uid_only()
does not, and as we're going into a vfs redirectred function
I decided it wasn't safe for now.
Jeremy.
(This used to be commit b3e0f45488595aa96c852dab8e1349631a85dded)
|
|
calls make it :
become_root_uid_only()
operation
unbecome_root_uid_only()
saving errno across the second call. Most of our internal
change calls can be replaced with these simple calls.
Jeremy
(This used to be commit 4143aa83c029848d8ec741d9218b3fa6e3fd28dd)
|
|
fix the messaging code to call the efficient calls :
save_re_uid()
set_effective_uid(0);
messaging_op
restore_re_uid();
instead of using heavyweight become_root()/unbecome_root()
pairs around all messaging code. Fixup the messaging
code to ensure sec_init() is called (only once) so that non-root
processes still work when sending messages.
This is a lighter weight solution to become_root()/unbecome_root()
(which swaps all the supplemental groups) and should be more
efficient. I will migrate all server code over to using this
(a similar technique should be used in the passdb backend
where needed).
Jeremy.
(This used to be commit 4ace291278d9a44f5c577bdd3b282c1231e543df)
|
|
Jeremy, I'm sure you will look at this nevertheless :-)
Volker
(This used to be commit 3ef34468b55771b6f6b54454fa6c9decc183c565)
|
|
in one place.
Jeremy.
(This used to be commit f326bae3e269046b6f087626240cddbb5dafb0e4)
|
|
Jeremy.
(This used to be commit 8eed82d5d5ba34cc0a6b99b9d0df45eec5f788fa)
|
|
to copy over the copy of the access_mask, open_access_mask.
Jerry - this is a definate fix for a 3.0.23b and should also
be on the patches page. CIFSFS breaks without this.
Jeremy.
(This used to be commit d11e71ebcccf6907f2404a04aa6bf61b12ab2709)
|
|
(This used to be commit 2e400fb0077ccef38fff28ef037f982624b7815b)
|
|
(This used to be commit 640b4297a400fe23418e9c1c01d4c14ce3bde5b4)
|
|
sure we return -1.
Jeremy.
(This used to be commit 89b83237b03066785ca4bf3b9d120519bddeffad)
|
|
modularizes our interface into the special posix API used on
the system. Without this patch the specific API flavor is
determined at compile time, something which severely limits
usability on systems with more than one file system. Our
first targets are AIX with its JFS and JFS2 APIs, at a later
stage also GPFS. But it's certainly not limited to IBM
stuff, this abstraction is also necessary for anything that
copes with NFSv4 ACLs. For this we will check in handling
very soon.
Major contributions can be found in the copyright notices as
well as the checkin log of the vl-posixacls branch. The
final merge to 3_0 post-3.0.23 was done by Peter Somogyi
<psomogyi@gamax.hu>
(This used to be commit ca0c73f281a2a65a988094a46bb3e46a94011a53)
|
|
reschedule.
Jeremy.
(This used to be commit 11bab9d57958659c71f053fe8dc0f9156c9f3c1f)
|
|
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)
|