| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
map_nt_error_from_unix() now assumes that it is called in
an error path and returns an error even for a given errno == 0.
The original behaviour of unix_convert() used the mapping
of errno == 0 ==> NT_STATUS_OK to return success through
an error path.
I think this must have been an oversight, and unix_convert() worked
only by coincidence (or because explicitly using the knowledge
of the conceptually wrong working of map_nt_error_from_unix().
This patch puts this straight by not interpreting errno == 0
as an error condition and proceeding in that case.
Jeremy - please check!
Michael
|
|
|
|
|
|
|
|
| |
get_file_infos()
This means we need to fetch the record only once.
metze
|
|
|
|
|
|
|
|
|
|
| |
new stream code. (1) In smbd/filename, don't split the name at
':' if we know it's a posix path (this should be parameterized....).
(2). When calling posix_mkdir, we get the flag FILE_FLAG_POSIX_SEMANTICS
passed to open_directory(). I know for a posix client lp_posix_pathnames
should be true (which is checked for in is_ntfs_stream_name() but we
have an explicit flag here, so let's use it.
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
This is the core of the streams support. The main change is that in
files_struct there is now a base_fsp pointer that holds the main file open
while a stream is open. This is necessary to get the rather strange delete
semantics right: You can't delete the main file while a stream is open without
FILE_SHARE_DELETE, and while a stream is open a successful unlink of the main
file leads to DELETE_PENDING for all further access on the main file or any
stream.
|
|
|
|
| |
This cuts some mallocs on NtCreate&X
|
|
|
|
|
|
| |
sure we don't search directories on name misses
for non-mangled names.
Jeremy
|
|
|
|
|
|
|
|
| |
If we know the underlying filesystem is case-insensitive, then we
know that it won't help to search for case variations of the requested
name.
Jeremy, please review (and revert if you disagree).
|
|
|
|
|
|
|
| |
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
|
|
|
|
|
|
|
| |
new name if unmangling succeeded, not if it
failed. Jerry - please re-test, this should
fix your bug.
Jeremy.
|
|
|
|
|
| |
to unix_convert().
Jeremy.
|
|
|
|
|
|
|
|
|
| |
There are now ony 17 pstrings left in reply.c,
and these will be easy to remove (and I'll be
doing that shortly). Had to fix an interesting
bug in pull_ucs2_base_talloc() when a source
string is not null terminated :-).
Jeremy.
|
|
|
|
|
|
| |
interface. More development will come on top of this. Remove the
"mangled map" parameter.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
In this error case we would have used "start" not having it initialized
|
|
|
|
|
|
|
|
|
|
| |
This API will change anyway when moving away from pstrings.
It took so long to fix, because that rename bug I just fixed gave make
test failures that had nothing to do with this one.
I have samba4 tests for both bugs, will check them in when the build
farm has caught up
|
| |
|
|
|
|
| |
part of the string to the caller.
|
|
|
|
|
|
|
| |
it's needed for some cluster filesystems to
overload this function.
metze
|
| |
|
| |
|
|
|
|
|
| |
correctly.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0001-Save-a-strdup-in-stat_cache_add.patch
0002-Use-ISDOT-and-ISDOTDOT.patch
0003-Move-fname_equal-around.patch
0004-unix_convert-pstring-dirpath-char.patch
0005-Ignore-.o-files.patch
0006-Get-rid-of-pstrings-inside-unix_convert.patch
0007-revert-pstring-unix_convert.patch
0008-Make-name-an-allocated-pstring-inside-unix_convert.patch
0009-Pass-explicit-pstring-to-mangle_check_cache.patch
0010-Don-t-overwrite-orig_path-unnecessarily.patch
0011-Defer-allocating-name.patch
0012-Make-sure-dirpath-is-always-correctly-allocated.patch
0013-Remove-one-pstring-dependency-in-unix_convert.patch
0014-Remove-more-name-pstring-dependencies.patch
0015-Hide-the-nasty-API-of-mangle_check_cache-in-mangle_c.patch
0016-name-does-not-need-to-be-pstring-size-anymore.patch
0017-Make-use-of-ISDOT-and-ISDOTDOT.patch
0018-Remove-pstring-from-stat_cache_lookup.patch
0019-Add-my-copyright.patch
To remove pstrings from statcache and unix_convert.
Jeremy.
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
The function name reduce_name is misleading, making the user believe it
changes an argument.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the internal explicit dev/ino file id representation by a
"struct file_id". This is necessary as cluster file systems and NFS
don't necessarily assign the same device number to the shared file
system. With this structure in place we can now easily add different
schemes to map a file to a unique 64-bit device node.
Jeremy, you might note that I did not change the external interface of
smb_share_modes.c.
Volker
|
|
|
|
|
| |
with -DDEVELOPER.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
| |
watch carefully - so I'm doing it in one transaction so I can
roll back).
Change check_name(), reduce_name() and dptr_create() to
return NTSTATUS. This helps a lot in error path processing
and especially in reduce_name() allows us to ditch the flaky
and error-prone saving of errno and return errors directly.
Jeremy.
|
|
|
|
|
| |
go back to normal. Sorry about that.
Jeremy.
|
|
|
|
|
| |
to go...
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
| |
The only difference between the two trees now w.r.t file
serving are the changes to smbd/open.c in this branch I need
to review.
Jeremy.
|
|
|
|
|
|
|
| |
to do the upper layer directories but this is what
everyone is waiting for....
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
| |
"As a special case for directories with large numbers of files, if the
case options are set as follows, "case sensitive = yes", "case
preserve = no", "short preserve case = no" then the "default case"
option will be applied and will modify all filenames sent from the client
when accessing this share."
This is needed as fixing the case preserve rules to only apply to
new filenames broke the large directory fix. Glad we caught this
before release. Thanks to jht for this one.
Jeremy.
|
|
|
|
|
|
| |
default case applies only to new files and correctly examines 8.3
and long names.
Jeremy.
|
|
|
|
|
|
|
|
|
| |
the mangle cache is no good (3 letter extension could be wrong
case - so don't demangle in this case - leave as mangled and
allow the mangling of the directory entry read (which is done
case insensitively) to match instead. This will lead to more
false positive matches but we fail completely without it.
Jeremy.
|
|
|
|
|
|
|
| |
directory/insane app
problem. Rev vfs version. Doesn't change the normal codepath.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
| |
char).
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file/directory
will be owned by the same uid as the containing directory. Doing this for directories
in a race-free mannor has only been tested on Linux (it depends on being able to open
a directory and then do a fchown on that file descriptor). If this functionality is
not available then the code silently downgrades to not changing the ownership of a
new directory. This new parameter (docs to follow) finally makes it possible to create
"drop boxes" on Samba, which requires all files within a directory to be commonly owned.
A HOWTO on how to use this will follow.
Jeremy.
|
|
|
|
|
|
| |
Rename dptrs_open to the more correct dirhandles_open.
Remove old #if 1.
Jeremy.
|
|
|
|
|
|
| |
directory match more efficiently. Passes RAW-SEARCH under valgrind but needs more
testing (which I'll do later today :-).
Jeremy.
|
|
|
|
|
|
|
|
| |
that just allow the wrong pointer to be assigned :-) and make the
interface more consistent. Fix the FreeBSD directory problem. Last
thing to do is to add the "singleton" directory concept from James
Peach's code.
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
evaluation. This stops us from reading the entire directory into
memory at one go, and allows partial reads. It also keeps almost
the same interface to the OpenDir/ReadDir etc. code (sorry James :-).
Next I will optimise the findfirst with exact match code. This speeds
up our interactive response for large directories, but not when a
missing (ie. negative) findfirst is done.
Jeremy
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
| |
statcache anyway. New dir caching will be done on nanosecond
timestamps.
Jeremy.
|
| |
|
|
|
|
|
| |
our pathname parsing is consistent.
Jeremy.
|