case sensitive = yes and zfs casesensitivity = insensitive
Richard Sharpe
realrichardsharpe at gmail.com
Mon Jun 22 22:39:40 MDT 2015
On Mon, Jun 22, 2015 at 12:12 PM, Richard Sharpe <
realrichardsharpe at gmail.com> wrote:
> On Mon, Jun 22, 2015 at 10:51 AM, Jeremy Allison <jra at samba.org> wrote:
>
>> On Fri, Jun 19, 2015 at 02:26:21PM -0700, Richard Sharpe wrote:
>> > Hi,
>> >
>> > We were testing with this option in Samba master with ZFS and it was not
>> > working, and it seems to revolve around the need for a change like this:
>> >
>> > --- a/source3/smbd/filename.c
>> > +++ b/source3/smbd/filename.c
>> > @@ -472,7 +472,9 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
>> > * won't help.
>> > */
>> >
>> > - if ((conn->case_sensitive || !(conn->fs_capabilities &
>> > + if ((lp_case_sensitive(SNUM(conn))
>> > + || conn->case_sensitive
>> > + || !(conn->fs_capabilities &
>> > FILE_CASE_SENSITIVE_SEARCH)) &&
>> > !mangle_is_mangled(smb_fname->base_name,
>> > conn->p
>> >
>> > Did someone break this functionality at some time?
>>
>> Maybe. That change shouldn't be needed. Inside set_current_service()
>> we have:
>>
>> switch (lp_case_sensitive(snum)) {
>> case Auto:
>> {
>> /* We need this uglyness due to DOS/Win9x
>> clients that lie about case inse
>> enum remote_arch_types ra_type =
>> get_remote_arch();
>> if ((ra_type != RA_SAMBA) && (ra_type !=
>> RA_CIFSFS)) {
>> /* Client can't support
>> per-packet case sensitive pathnames. */
>> conn->case_sensitive = False;
>> } else {
>> conn->case_sensitive = !(flags &
>> FLAG_CASELESS_PATHNAMES);
>> }
>> }
>> break;
>> case True:
>> conn->case_sensitive = True;
>> break;
>> default:
>> conn->case_sensitive = False;
>> break;
>> }
>>
>> which means when "case sensitive = true" is set then
>> conn->case_sensitive should always be set to true.
>>
>> Can you work with me to debug this ? I don't know
>> exactly what you're seeing here.
>>
>
> I notice that there are two places where this should have been set, as it
> is also done in make_connection_snum and there does not appear to be
> anywhere where it is unset. We are rechecking whether or not this is needed.
>
OK, we have figured it out. The problem was in the GetDFSReferral pathway
where we create a new connection object because the request comes in on
IPC$ and were not setting the case_sensitive flag ...
--
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)
More information about the samba-technical
mailing list