diff options
author | Jeremy Allison <jra@samba.org> | 2009-11-25 13:17:56 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-11-25 13:17:56 -0800 |
commit | c96d487ae3c65c17b377bb316adac4b5775448f3 (patch) | |
tree | df74fe3a61a24df2226fe65b797621ba642c1f84 /nsswitch | |
parent | 108da2adaf77c152fd292bbdf5645923659a7c2c (diff) | |
download | samba-c96d487ae3c65c17b377bb316adac4b5775448f3.tar.gz samba-c96d487ae3c65c17b377bb316adac4b5775448f3.tar.bz2 samba-c96d487ae3c65c17b377bb316adac4b5775448f3.zip |
Make us pass RAW-CHKPATH with a case sensitive share.
I know Volker will look at this closely so here's the explaination :-).
Originally on a case-sensitive share we simply did a stat (or lstat)
call and returned success of fail based on the result. However this
failed to take account of incoming paths with a wildcard (which must
always fail, and with different error messages depending on whether
the wildcard is the last component or in the path). Also it failed
to take account of a stat fail with ENOENT due to a missing component
of the path as the last component (which is ok as it could be a new
file) or if the ENOENT was due to the missing component within
the path (not the last component) - which must return the correct
error. What this means is that with "case sensitive = yes" we do
one more talloc call (to get the parent directory) and one more
stat call (on the parent directory) in the case where the stat
call fails. I think this is an acceptable overhead to enable
case sensitive shares to return the correct error messages for
applications. Volker please examine carefully :-).
Jeremy.
Diffstat (limited to 'nsswitch')
0 files changed, 0 insertions, 0 deletions