| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Fix bug #1206 (netatalk vfs causes segfaults in samba).
(cherry picked from commit 531a9ebd52fe65196bb01632a296b40a92a43b4c)
|
|
|
|
| |
Part of a fix for bug #7081.
|
|
|
|
|
|
|
| |
Fix inspired by idea from Eric Horst <erich@cac.washington.edu>.
Jeremy.
(cherry picked from commit de24209f0a745ada4220a1751c4ed88ae6eea575)
|
|
|
|
| |
commit ca847952054f5bbde1d40ad4260589b6fcc9721d)
|
|
|
|
| |
Guenther
|
|
|
|
| |
Additional patch to fix bug #6769.
|
| |
|
|
|
|
|
|
|
|
| |
This was found thanks to a test by Sivani from Microsoft against Samba at the
SDC plugfest
(cherry picked from commit 444a05c28df693a745809fef73ae583a78be7c8f)
Fix bug #6731.
|
| |
|
|
|
|
| |
Thanks Michael to provide some transparency :-)
|
|
|
|
|
| |
We have to drop the gpfs level share modes, regardless of whether we put
the file into the pending close queue.
|
|
|
|
|
| |
Signed-off-by: Tim Prouty <tprouty@samba.org>
(cherry picked from commit bb454b5fd95185a1456ea120b3a7c56f4a4f1c78)
|
|
|
|
|
|
| |
The aio_fork module does not need this, as it does not communicate via signals
but with pipes. Watching a strace log with those become_root() calls in aio.c
is absolutely awful, and it does affect performance.
|
|
|
|
| |
Keeping such an fd open prohibits another open of that same file.
|
| |
|
|
|
|
| |
(cherry picked from commit 3627ceb5e25cdecd1a8113a5028cc898a1424349)
|
|
|
|
| |
(cherry picked from commit c2482d6b23f769d8a5fa4141f9540a25c985d7cc)
|
|
|
|
|
| |
Should make Solaris 10 builds look cleaner.
Jeremy.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Often times before creating a file, a client will first query to see
if it already exists. Since some systems have a case-insensitive stat
that is called from unix_convert, we can definitively return
STATUS_NO_SUCH_FILE to the client without scanning the whole
directory.
This code path is taken from trans2querypathinfo, but trans2findfirst
still does a full directory scan even though the get_real_filename
(the case-insensitive stat vfs call) can prevent this.
This patch adds the get_real_filename call to the trans2find* path,
and also changes the vfs_default behavior for
SMB_VFS_GET_REAL_FILENAME. Previously, in the absence of a
get_real_filename implementation, we would fallback to the full
directory scan. The default behavior now returns -1 and sets errno to
EOPNOTSUPP. This allows SMB_VFS_GET_REALFILENAME to be called from
trans2* and unix_convert.
|
|
|
|
| |
Addendum to c49730e1. Use newer cookie conversion names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bug prompted several, fairly large changes to the of OneFS's
readdirplus() within Samba.
One fundamental problem is that we kept our cache cursor pointed at the
next entry to be returned from onefs_readdir(), while the resume cookie
needed to refill the cache such that our cursor would be on this entry,
was located in the previous cache entry. This meant that to correctly handle
seekdir() cases which could be found within the existing cache, and cases
where a cache reload was needed, required that the cache always hold
at least two entries: the entry we wished to return, and the previous entry
which held the resume cookie. Since the readdirplus() syscall gives us no
guarantee that it will always return these two direntries, there was a
fundamental problem with this design.
To fix this problem, I have rearchitected the onefs_readdir() path to keep
its pointer on the entry which contains the resume_cookie, not the entry
which will be returned next. Essentially, I changed onefs_readdir() from a
"return an entry then increment the cursor" model to "increment the cursor
then return an entry". By doing this, we only require that a single entry
be within the cache: the entry containing the resume cookie.
Second, there have been numerous off-by-one bugs in my implementation of
onefs_seekdir() which did a mapping between the 64-bit resume cookie
returned by readdirplus() and its own monotonically increasing "location"
offset. Furthermore, this design caused a somewhat frequent waste of
cycles, as in some cases we'd need to re-enumerate the entire directory to
recover the current "location" from an old resume cookie. As this code was
somewhat difficult to understand, prone to bugs, and innefficient in some
cases I decided it was better to wholesale replace it now, rather than later.
It is possible to algorithmically map the 64-bit resume cookies from
readdirplus() into 32-bit offset values which SMB requires. The onefs.so
module now calls into a system library to do this conversion. This greatly
simplifies both the seekdir() and telldir() paths and is more efficient.
|
|
|
|
|
|
|
| |
Not being able to open the shadow copy directory is the same as having no
shadow copy support at all. The VFS module should in this case not log with
debug level 0 and set ENOSYS to indicate "no shadow copies used" to the higher
levels.
|
|
|
|
|
|
| |
onefs_get_real_filename needs to demangle the filename before doing
the case-insensitive estat
(cherry picked from commit 161bd7f78fd10e4f850dc3ef1ba3df53c43eae30)
|
| |
|
| |
|
| |
|
|
|
|
| |
(cherry picked from commit 87fe4d732d18d18ed56c99cba6a395a0bf9e9d95)
|
|
|
|
| |
(cherry picked from commit 74246650613cca9ec57c9a0eff75c53a5c15b110)
|
|
|
|
|
|
|
|
| |
running many of the LOCK torture tests.
Return true from the onefs cancel function if we've errored, which can happen
when the CBRL domain is configured to only give out 1 lock. :)
(cherry picked from commit bfc7bb49ff0b842a1a372cee7d2affb49c2a0e54)
|
|
|
|
| |
(cherry picked from commit 365b5cfcbeb041ce84718717f30ac02183c9af7f)
|
|
|
|
|
| |
.. after adding smb_iconv_convenience to ndr_size_security_descriptor()
(cherry picked from commit 9e70a960b78b8c2ca7c308a4ff9af9011804585c)
|
|
|
|
|
|
|
| |
modules shouldn't matter, so as vfs_streams_depot doesn't
implement get/setxattrs then call into the full VFS stack
at the top.
Jeremy
|
|
|
|
|
|
| |
SET_SECURITY_DESC
(cherry picked from commit ad98eae02e623a8ca8aa6a1c46d5aedea50e2e4b)
|
| |
|
| |
|
|
|
|
| |
Also add some more debugging.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
(caused by the POSIX pathname fixes).
Jeremy.
|
| |
|
| |
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|
| |
|