Jeremy Allison [Thu, 3 Dec 2009 02:06:40 +0000 (18:06 -0800)]
Remove unneeded argument from can_set_delete_on_close(). Ensure
can_set_delete_on_close() is correctly called before any setting
of the disposition bit (clean up the do_unlink() call).
Jeremy.
Steven Danneman [Thu, 26 Nov 2009 01:39:42 +0000 (17:39 -0800)]
s4/torture: add multiple lock cancel test
See what happens when we have multiple outstanding lock requests and
we try to cancel both of them within a single LockingAndX.
On Windows, it seems only the first lock in the array is cancelled,
and the second is left pending. Though, this behavior goes against
the MS-CIFS spec.
Steven Danneman [Tue, 1 Dec 2009 01:05:27 +0000 (17:05 -0800)]
s4/torture: add addition multiple lock tests
* test that 2 locks in a single LockAndX are transactional
* test that 1 unlock and 1 lock in a single LockAndX are not
transactional
* test that SMB2 doesn't like mixed lock/unlock in a single
PDU
Steven Danneman [Wed, 25 Nov 2009 00:58:25 +0000 (16:58 -0800)]
s4/torture: Add target functionality parameters to SMBv1 BRL tests
Abstract the server requirements to pass some BRL tests.
* The new default for >64bit lock tests, is that the server should
return STATUS_INVALID_LOCK_RANGE.
* Add parameter for targets that don't implement DENY_DOS
Andrew Tridgell [Wed, 2 Dec 2009 22:19:55 +0000 (09:19 +1100)]
s4-drs: fixed UDV and overlapping sync calls in DRS
When windows abandons a DRS sync, it will sometimes re-use the same bind handle for
a new sync. This means we need to check the DN of the sync and blank the getnc_state
if the DN has changed.
This also fixes the UDV to use the highest uSN for the partition, not for
the whole SAM.
Jeremy Allison [Wed, 2 Dec 2009 23:02:28 +0000 (15:02 -0800)]
Restructure the ACL code some more, get the internal semantics
right. The previous bugs were due to the fact that get_nt_acl_internal()
could return an NTSTATUS error if there was no stored ACL blob, but
otherwise would return the underlying ACL from the filysystem. Fix
this so it always returns a valid acl if it can, and if it does not
its an error to be reported back to the client. This then changes
the inherit acl code. Previously we were trying to match Windows
by setting a minimal ACL on a new file that didn't inherit anything
from a parent directory. This is silly - the returned ACL wouldn't
match the underlying UNIX permissions. The current code will correctly
inherit from a parent if a parent has any inheritable ACE entries
that apply to the new object, but will return a mapping from the
underlying UNIX permissions if the parent has no inheritable entries.
This makes much more sense for new files/directories.
Jeremy.
Björn Jacke [Wed, 2 Dec 2009 14:13:37 +0000 (15:13 +0100)]
s3: prefer posix_fallocate for doing "strict allocate"
posix_fallocate is more efficient than manual zero'ing the file. When
preallocation in kernel space is supported it's extremely fast. Support for
preallocation at fs layer via posix_fallocate and fallocate at kernel site
can be found in Linux kernel 2.6.23/glibc 2.10 with ext4, XFS and OCFS2. Other
systems that I know of which support fast preallocation in kernel space are
AIX 6.1 with JFS2 and recent Solaris versions with ZFS maybe UFS2, too.
People who have a system with preallocation in kernel space might want to set
"strict allocate = yes". This reduces file fragentation and it's also safer for
setups with quota being turned on.
As of today most systems still don't have preallocation in kernel space, and
that's why "strict allocate = no" will stay the default for now.
Jeremy Allison [Wed, 2 Dec 2009 20:09:48 +0000 (12:09 -0800)]
Ensure get_nt_acl_internal() only looks at the ACL blobs, not
reads off the underlying filesystem. Ensure that vfs_acl_tdb.c
returns NT_STATUS_NOT_FOUND, not NT_STATUS_OBJECT_NAME_NOT_FOUND
when it can't find a blob matching the file.
Jeremy.
Jeremy Allison [Wed, 2 Dec 2009 18:01:14 +0000 (10:01 -0800)]
Fix bug #6837 - "Too many open files" when trying to access large number of files
from Windows 7. Original patch by me fixed up with the correct open files number
by jmaggard10@hotmail.com.
Jeremy.
Jeremy Allison [Tue, 1 Dec 2009 22:08:16 +0000 (14:08 -0800)]
Ensure we don't see the xattr used to store NT security (visible when xattr_tdb
is used). Allows make test to pass with acl_xattr.so prepended to the vfs modules.
Jeremy.
Tim Prouty [Tue, 1 Dec 2009 00:43:00 +0000 (16:43 -0800)]
s4 torture: Change oplock to use passthrough for exclusive3/batch11
In light of the INVALID_LEVEL that is seen for RAW_SFILEINFO_END_OF_FILE_INFO
requests on a path, I'm changing these back to using the passthrough
RAW_SFILEINFO_END_OF_FILE_INFORMATION to test the oplock break behavior as
originally intended
Tim Prouty [Mon, 30 Nov 2009 19:59:19 +0000 (11:59 -0800)]
s4 torture: Update RAW-SFILEINFO-END-OF-FILE to test some additional corner cases
It turns out setting the end-of-file with Trans2SetPathInfo using the
snia spec's info level will attempt to open the file, enforcing share
modes, but then subsequentlys fail the setpathinfo with a dos error of
INVALID_LEVEL. Doing a Trans2SetFileInfo with either end-of-file info
level succeeds as expected.
Michael Adam [Tue, 1 Dec 2009 13:55:02 +0000 (14:55 +0100)]
s3:build: fix the build when no external talloc and tdb are installed.
The check for the external libs and the addition of the include paths
to the CPPFLAGS was too late in configure.
This patch moves the whole subsystem/library section up right below
the detection of "BLDSHARED".
And it updates not only SAMBA_CPPFLAGS but also SAMBA_CONFIGURE_CPPFLAGS
so that many tests that use these flags can now succeed.
Jeremy Allison [Tue, 1 Dec 2009 00:50:34 +0000 (16:50 -0800)]
Fix bug 6938 : No hook exists to check creation rights when using acl_xattr module
Fix ACL modules to test for permissions on open/mkdir/opendir.
Ensure that underlying ACLs are returned for directories/files with
no Windows xattr or tdb acls stored.
Jeremy.
Jeremy Allison [Mon, 30 Nov 2009 23:53:04 +0000 (15:53 -0800)]
Restructure the connect function code to always call
down to NEXT-> before initializing. This allows us to
do cleanup (by calling DISCONNECT) if initialization
fails. Also fix vfs_acl_xattr which was failing to
call the NEXT connect function.
Jeremy.
s4-drs: Test situations for runtime constructed parentGUID
Includes the following verifications for the constructed parentGUID:
- Checks if it returns nothing when there is no parent object
- Ensures that attributes mentioned after the parentGUID
are returned correctly (this avoid a bug pointed out by Tridge
during sync constructed parentGUID development)