1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-29 15:42:04 +03:00
Commit Graph

810 Commits

Author SHA1 Message Date
b5cad2c2a7 r20627: orig_name is not needed anymore, and slightly simplify logic by doing early
returns.

Volker
(This used to be commit 614651c6a7)
2007-10-10 12:16:59 -05:00
dbac39f74e r20619: bad_path is handled somewhere else, so can_delete does not need it anymore
(This used to be commit 1798987128)
2007-10-10 12:16:59 -05:00
1b50bcc9c8 r20618: Fix a bug in bad_path handling that also exists in 3.0.23: For reply_unlink
under Linux we returned NT_STATUS_NOT_A_DIRECTORY. This is because in the
bad_path==True condition lstat(2) returns ENOTDIR and not ENOENT.

Not sure if we want to necessarily replicate the INVALID_PARAMETER here, but
this is what W2k3 does.

Jeremy, I tried to call you, but you were not around. So I'll leave it up to
you to merge this.

Volker
(This used to be commit b1edc3d053)
2007-10-10 12:16:59 -05:00
a9e3624bbc r20617: Do not notify if the delete failed
(This used to be commit c86fbdf8cc)
2007-10-10 12:16:59 -05:00
d10af02226 r20612: A checkin I've wanted to do for ages: For bad_path==False set_bad_path_error
is equivalent to UNIX_ERROR. Expand the last reference. Lets see if I can kill
that as well :-)

Volker
(This used to be commit 794d5d38f1)
2007-10-10 12:16:58 -05:00
283c690e6e r20611: All but one callers to set_bad_path_error have had the bad_path==True argument
being handled further up.

Volker
(This used to be commit 358673c366)
2007-10-10 12:16:58 -05:00
72ecfaf32c r20607: Next micro-step for reply_setatr
(This used to be commit cea9a01434)
2007-10-10 12:16:58 -05:00
21cc389545 r20606: bad_path == True has been covered further up in reply_setatr.
I'm checking in micro-steps to make them independently checkable. This code
just very severely needs cleanup, but I don't want to break anything. So, be
patient with me, please :-)

Volker
(This used to be commit c16775486b)
2007-10-10 12:16:57 -05:00
ccc54da805 r20605: Simplify logic in reply_setatr slightly
(This used to be commit f19db8f33e)
2007-10-10 12:16:57 -05:00
b2efff8fe5 r20597: Survive some of the notify mask tests.
(This used to be commit e4a2e63272)
2007-10-10 12:16:57 -05:00
bb357a1617 r20589: Re-add lost bad_path handling, sorry.
(This used to be commit 244f96388c)
2007-10-10 12:16:56 -05:00
0a8e3fd236 r20558: Refactor rmdir_internals to use early termination rather
than lots of indented code. Change recursive_rmdir()
to return the smbd standards of True on success, False
on fail (it was doing the reverse, which was very confusing).
Jeremy.
(This used to be commit 27dc5bebda)
2007-10-10 12:16:56 -05:00
1307337aaf r20544: Change copy_file() to return NTSTATUS. This is in preparation of turning
close_file() to NTSTATUS as well.

I'm not sure I got all the error codes right, but as I've never come across a
smb_copy() call in all my Samba work, I'm leaving it at that. If I'm
absolutely bored, I will write a thorough torture test.

As far as I can see, Samba4 even does not have a libcli implementation for
it...  :-)

Volker
(This used to be commit 5ebdf02ba1)
2007-10-10 12:16:56 -05:00
2b1760297f r20532: From Volker...
"smbcli_setattr("") always returns ACCESS_DENIED, test extension to follow.

Merge to 3.0.24?"

Yep (with slight optimization).

Jeremy.
(This used to be commit dcc7bca1ad)
2007-10-10 12:16:55 -05:00
bc20aac121 r20507: smbcli_setattr("") always returns ACCESS_DENIED, test extension to follow.
Merge to 3.0.24?

Volker
(This used to be commit f2563ac98f)
2007-10-10 12:16:54 -05:00
9985f25f00 r20496: Some changes to make Samba3 the RAW-OPEN test. Checking in to both 3_0 and
3_0_24 because I was explicitly asked to, although this needs close
review. Jeremy, I'm sure you will check this thoroughly :-)

In reply_open_and_X the separate "size" variable kills the calculation of the
SPARSE flag returned to the client in the attrib field. In getpathinfo we do
it correctly, and RAW-OPEN (correctly) complains about the difference.

Add the "set the write time" to mknew and create.

For trans2open we were missing the "ofun == 0" ->
NT_STATUS_OBJECT_NAME_COLLISION case, and we dropped the status returned in
favor of ACCESS_DENIED once too many.

Last change is a fix to trans2open: We were returning the attributes given by
the client, not the attributes of the new file.

Volker
(This used to be commit 84e6889632)
2007-10-10 12:16:53 -05:00
b3ddd92ba2 r20482: Make us survive and activate RAW-CLOSE
(This used to be commit 471c6e6a21)
2007-10-10 12:16:52 -05:00
6edd999dc1 r20479: Both remaining calls of can_delete called it with check_is_at_open==False,
remove that parameter.

Volker
(This used to be commit e51b764870)
2007-10-10 12:16:51 -05:00
58b63b65fc r20478: Make us survive & activate RAW-UNLINK
(This used to be commit 4f0f917b34)
2007-10-10 12:16:51 -05:00
2c1b3a0720 r20470: Jeremy, another one to check:
The only error path of can_delete() that we're interested in ntcreate&x is the
one of can_delete_file_in_directory(), so call that directly.

The only other one where we might get a NT_STATUS_ACCESS_DENIED is from the
lstat in can_delete, but this is covered later in the open_directory and
open_file_ntcreate calls. open_directory does a stat() in the open case which
also covers the (potential) symlink, and open_file_ntcreate does the open(2)
itself, so this should also work.

This makes can_delete() static to reply.c.

Volker
(This used to be commit d289037fdb)
2007-10-10 12:16:51 -05:00
495c361907 r20454: Get rid of a bogus variable that was only assigned but never read.
Jeremy, please check this.

Thanks,

Volker
(This used to be commit 2becbb9e5f)
2007-10-10 12:16:51 -05:00
92d02f7afe r20451: Survive the first of the filter-tests (mkdir).
Add lots of TODOs :-)

Volker
(This used to be commit 0e953884a1)
2007-10-10 12:16:50 -05:00
200bd10b32 r20442: Slight rewrite of the change notify infrastructure. This now survives the
first of the raw-notify subtests, the one-level test_notify_dir without any
flags around yet.

The tricky part was getting the data structures right, I hope the next tests
don't let that fall over.

fsp->notify is now by default NULL, meaning that nobody has issued a
changenotify call. This means nobody is interested in changes for this
directory.

If that has happened, notify_change_buf collects the changes if no current
request is outstanding, and it collects the requests if no change has happened
since the last request.

Happy New Year, somewhere on this planet it's already 2007 :-)

Volker

P.S: Jeremy, there's a question for you in smbd/files.c line 367.
(This used to be commit ce0ad24988)
2007-10-10 12:16:50 -05:00
165f5f3f40 r20433: Work in progress: Survive more of RAW-NOTIFY.
call_nt_transact_notify_change() is now sync if there are changes around.

A notify_message does a direct reply from within the message, so
process_pending_change_notify_queue is not needed anymore for samba-generated
events. Next step is to restructure the kernel-mechanisms to generate
messages.

Volker
(This used to be commit c813f71d00)
2007-10-10 12:16:49 -05:00
98c082489b r20394: This is a *VERY* early start of my work on notify.
Checking in because Jeremy was bugging me. Potentially this becomes quite
intrusive, I'm not sure if I should open a temporary branch for this.

Jeremy, Jerry, do you think 3_0 is the right place for this?

Volker
(This used to be commit bcf5c751cb)
2007-10-10 12:16:46 -05:00
143a364d62 r20393: Debug level 1 is a bit excessive here
(This used to be commit 48798b5e57)
2007-10-10 12:16:46 -05:00
3430c1ddb8 r20371: In renames (via SMBmv) both src and dest can contain
wcards. I had forgotten this and had refused to allow
dest to contain wcards. We now pass all the normal
Samba4 smbtorture RAW-RENAME tests.
Jeremy
(This used to be commit 4183c1b49f)
2007-10-10 12:16:45 -05:00
654f747e6d r20370: Now we've gone to the trouble of getting an NT status
from open_file_ntcreate make sure we return it on rename
error.
Jeremy.
(This used to be commit 633f02fb86)
2007-10-10 12:16:44 -05:00
d0c6f9b728 r20339: Make mkdir_internal static to open.c
(This used to be commit 6dd0886b49)
2007-10-10 12:16:42 -05:00
469b42c61f r20338: Restructure open_directory a bit. This gets rid of a race condition regarding
error messages: We relied upon a stat that a directory did not exist to later
on then do the mkdir or not. This does the mkdir directly and copes with a
potential error.

The second one is more important: It's possible with Samba 3 to do a
ntcreate&x with NTCREATEX_OPTIONS_DIRECTORY and we happily do a NT_STATUS_OK.

Also move up the use_nt_status() logic a bit. I think this does not belong
into the core routines, the smb server as such should take care of it.

Jeremy, do you think this should go to 3.0.24?

I'll update samba4torture when the build farm has picked up this checkin.

Volker
(This used to be commit 472fb11f49)
2007-10-10 12:16:42 -05:00
9e41616b06 r20264: Two lines above this we just checked if (fsp->is_directory) ...
(This used to be commit 88ab54b3b7)
2007-10-10 12:16:37 -05:00
f4f1814f8c r20253: Reduce some code duplication, make reply_mkdir go through the same code paths
ncreate does. This is a bit slower (about 10-20%), because it goes touches the
share mode db, but I think not having to call change_owner_to_parent and
friends in fewer places outweighs this. And, mkdir is not the way current
Windows boxes create directories, they do it via the ncreate call.

Volker
(This used to be commit ddae494fbe)
2007-10-10 12:16:37 -05:00
5bb49b08f3 r20237: Replace exit_server with exit_server_cleanly where appropriate. All
send_smb failures should be clean exits. All times when we exit as
a matter of policy should also be clean exits.
(This used to be commit d6382092e7)
2007-10-10 12:16:34 -05:00
0379e088dc r20229: Avoid a silly function call in mkdir_internal. None of the callers look at
errno, all go straight to ERROR_NT(status).

Volker
(This used to be commit 9d8b48c0ef)
2007-10-10 12:16:34 -05:00
f18c9365ca r18787: Fix the strlen_m and strlen_m_term code by merging
in (and using elsewhere) next_codepoint from Samba4.
Jerry please test.
Jeremy.
(This used to be commit ece00b70a4)
2007-10-10 12:00:57 -05:00
120422f723 r17220: If we're going to fail a write with an errno, make
sure we return -1.
Jeremy.
(This used to be commit 89b83237b0)
2007-10-10 11:38:19 -05:00
1cd8d56fda r17108: Make the default timeout parameter for lock waiting
be lp_lock_spin(). lock spin count is no longer
used. I'll update the man pages.
Jeremy.
(This used to be commit 0451a170c9)
2007-10-10 11:38:12 -05:00
38af904c31 r17107: Make the 200 ms timeout value tunable in local.h...
Might need to be a parameter ?
Jeremy.
(This used to be commit 98d8d9399b)
2007-10-10 11:38:12 -05:00
a456a31309 r17106: Match Windows timing values on locks.
Jeremy.
(This used to be commit b5aaff6659)
2007-10-10 11:38:12 -05:00
b737f26764 r17105: Fix the race Volker found - we had a non-locked
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 b81d6d1ae9)
2007-10-10 11:38:12 -05:00
e1da1fcf12 r17098: Samba3 now cleanly passes Samba4 RAW-LOCK torture
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 f1a9cf075b)
2007-10-10 11:38:11 -05:00
fbdcf2663b r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
to do the upper layer directories but this is what
everyone is waiting for....

Jeremy.
(This used to be commit 9dafb7f48c)
2007-10-10 11:19:14 -05:00
ce61fb21d9 r16397: Fix Klocwork #11767 and drasticly simplify the
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 d357f8b335)
2007-10-10 11:18:52 -05:00
bef4969247 r15951: oplock_request must be an int, not a BOOL. We
were getting away with mixing types. Not cool.
Jeremy.
(This used to be commit ad3bc112a2)
2007-10-10 11:17:14 -05:00
4d55a81958 r15450: Change profiling data macros to use stack variables rather than
globals. This catches mismatched start/end calls and removes
the need for special nested profiling calls.
(This used to be commit ee75049881)
2007-10-10 11:16:47 -05:00
5445694eb9 r15112: Move strict locking default to auto. Fix up the error
return for one of the Samba4 torture tests.
Jeremy.
(This used to be commit 9db6617756)
2007-10-10 11:16:24 -05:00
fc13f28417 r15030: On a performace hunt... Remove as many extraneous
memset's as possible.
Jeremy.
(This used to be commit 1217ed392b)
2007-10-10 11:15:58 -05:00
6c237e04b2 r15020: Fix issue with samba4 netbench torture tester,
it sends break replies to "break to none from level2"
requests and it shouldn't. Just don't log a debug
level zero message.
Jeremy.
(This used to be commit dc6a13da33)
2007-10-10 11:15:57 -05:00
22dbd67708 r15018: Merge Volker's ipc/trans2/nttrans changes over
into 3.0. Also merge the new POSIX lock code - this
is not enabled unless -DDEVELOPER is defined.
This doesn't yet map onto underlying system POSIX
locks. Updates vfs to allow lock queries.
Jeremy.
(This used to be commit 08e52ead03)
2007-10-10 11:15:57 -05:00
1af229a8f8 r14574: Allow use of sendfile as long as the write cache has not been enabled
on the particular file we are performing I/O on, irrespective of whether
the write cache is globally enabled
(This used to be commit 0809e2cb1d)
2007-10-10 11:15:37 -05:00