Jelmer Vernooij [Sat, 21 Feb 2009 17:21:20 +0000 (18:21 +0100)]
Add --enable-external-* flags for libraries shipped with Samba, to allow
explicitly enabling or disabling the use of the version provided by the
system.
Dan Sledz [Fri, 13 Feb 2009 20:28:57 +0000 (12:28 -0800)]
Introduce a new passdb backend: pdb_onefs_sam
Implements a custom backend for onefs that exclusively uses the wbclient
interface for all passdb calls.
It lacks some features of a standard passdb.
In particular it's a read only interface and doesn't implement privileges.
Dan Sledz [Fri, 13 Feb 2009 20:24:22 +0000 (12:24 -0800)]
Introduce a new authentication backend auth_onefs_wb
This new backend is custom tailored to onefs' unique requirements:
1) No fallback logic
2) Does not validate the domain of the user
3) Handles unencrypted passwords
Dan Sledz [Tue, 9 Dec 2008 08:29:26 +0000 (08:29 +0000)]
Allow building with an external libwbclient library
Introduce a new configure option --with-wbclient which specifies a
location to find a compatible libwbclient library to link against. This
options is overwritten by --with-winbind
todd stecher [Thu, 19 Feb 2009 17:33:30 +0000 (09:33 -0800)]
S3: Detect max_open_files from system
- Attempt to use syscalls to determine max-open-files value.
- Add in periodic logging when max file limit reached
Steven Danneman [Fri, 20 Feb 2009 21:25:17 +0000 (13:25 -0800)]
s3: OneFS implementation of change notify
The OneFS Samba implementation of change notify is modeled after the
usage of Linux's inotify kernel subsystem. A single call is made
into the onefs.so VFS module to initialize kernel tracking of certain
file change events. When these events occur a kernel notification is
sent to smbd and the notification event is translated and given to the
general Samba Change Notify layer through a callback function.
The most difficult aspect is converting an SMB CompletionFilter to
a matching ifs_event mask, and then back to an appropriate change
notify action. Currently, not all possible cases are handled by the
this module, but the most prevalent ones, which are tested by
smbtorture, are implemented.
Steven Danneman [Wed, 18 Feb 2009 00:20:18 +0000 (16:20 -0800)]
s3: Make change notify immediately return a catch-all packet on underlying error
* This allows a problem in the underlying CN backend to be bubbled up
to the general CN layer so a catch-all reply can be returned
* We now also return a catch-all response immediately if the server-side
event queue becomes too big
Steven Danneman [Fri, 20 Feb 2009 21:23:53 +0000 (13:23 -0800)]
s3: Modifications to generic notify structures to allow implementation of OneFS notify.
The OneFS kernel based change notify system takes an fd of the directory
to watch in it's initialization syscall. Since we already have this
directory open, this commit plumbs that fd down to the VFS layer via the
notify_entry struct.
We also need to know if the watch is taken out on a snapshot directory.
The full file_id struct is also passed down to make this determination.
The file_id marshalling wrappers are hand written here, but should
eventually be auto-generated by moving the struct file_id into the idl.
Steven Danneman [Fri, 20 Feb 2009 01:06:27 +0000 (17:06 -0800)]
Added torture tests to RAW-NOTIFY
* This adds a test to check the change notify behavior of the SMB server
when more events have been generated than can be returned in a single
change notify response.
* Second test makes sure the server doesn't return notification events
for changes to the watched directory itself
Jeremy Allison [Fri, 20 Feb 2009 16:23:52 +0000 (08:23 -0800)]
Fix bug #6133 - Cannot delete non-ACL files on Solaris/ZFS/NFSv4 ACL filesystem.
As the NFSv4 ACL mapping code doesn't map write directory into the DELETE_CHILD
permission bit (which we require before allowing a delete) no one can delete
files without an explicit DELETE_CHILD bit set on the directory. Add this mapping.
Jeremy.
Tim Prouty [Mon, 16 Feb 2009 07:45:28 +0000 (23:45 -0800)]
s3: Add extid to the dev/inode pair
This extends the file_id struct to add an additional generic uint64_t
field: extid. For backwards compatibility with dev/inodes stored in
xattr_tdbs and acl_tdbs, the ext id is ignored for these databases.
This patch should cause no functional change on systems that don't use
SMB_VFS_FILE_ID_CREATE to set the extid.
Existing code that uses the smb_share_mode library will need to be
updated to be compatibile with the new extid.
Tim Prouty [Tue, 23 Dec 2008 08:53:28 +0000 (00:53 -0800)]
s4 torture: Add new test to create a file with a lot of streams
This tests how streaminfo deals with large buffers
smbclient seems to have problems when the buffer size approaches the
max data size. Also smbclient exposes no way to specify the max data
size that is sent in a trans2 request. Instead it hardcodes in a much
larger max than windows uses. For these reasons this test isn't
actually run, but is more of a reference for how windows handles
streaminfo buffers.
s3: Fix streams enumeration bug in OneFS implementation
Previously, we didn’t call SMB_VFS_OPEN_DIR from the streams module,
instead we called fdopendir(). As a result we failed to populate the
dir_state list in the readdirplus module. So when we tried to view the
stream data, we will always returned NULL.
To solve this I separated onefs_opendir() and the initialization of
the dir_state list. This is done by introducing a new utility function
“onefs_rdp_add_dir_state()”, which initializes the dir_state structure
and adds it to the dir_state list. This function is called from the
streams module before calling readdir().
todd stecher [Thu, 12 Feb 2009 08:11:38 +0000 (00:11 -0800)]
S3: Stop creating SMBD cores when failing to create a pipe.
This was uncovered when the MAX FD limit was hit, causing an instant core
and invoking error reporting. This fix causes SMBD to exit, but without
building a core.
todd stecher [Wed, 18 Feb 2009 00:16:35 +0000 (16:16 -0800)]
S3: Allow SMBD processes to survive in low memory condidtions
This commit adds a configure argument which allows for setting MADV_PROTECT
in the madvise() API. With this enabled the kernel won't kill SMBD when
it's running low on memory.