linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steve French <smfrench@gmail.com>
To: Jeremy Allison <jra@samba.org>
Cc: Pavel Shilovsky <pavel.shilovsky@gmail.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	CIFS <linux-cifs@vger.kernel.org>,
	samba-technical <samba-technical@lists.samba.org>
Subject: Re: [PATCH] cifs/smb3: directory sync should not return an error
Date: Thu, 10 May 2018 16:56:16 -0500	[thread overview]
Message-ID: <CAH2r5mv-ccfA2vVD6sT8j7cYz1OAEh5PwS31NExr=CTYQUevsg@mail.gmail.com> (raw)
In-Reply-To: <CAH2r5muFnH0-mUWX1B_6AK5bN9r+mNsdnA+ag7V1R0Q9RFdR8A@mail.gmail.com>

checking various Linux file systems - looks like most of those I
checked end up with the default "EINVAL" so basically not a very
useful call to check the return code on - safer to ignore.   If others
prefer, I don't mind sending the call over the wire and ignoring the
return code - but presumably some server is going to error unusually
if we pass it over the wire and expect particularly return codes (and
thus break apps that check for rc==EINVAL or rc==0).

On Thu, May 10, 2018 at 3:28 PM, Steve French <smfrench@gmail.com> wrote:
> It wasn't sent to Samba - the error was returned by the VFS before it
> comes to cifs.ko because we don't implement this call.    NFS
> (correctly presumably) implements the syscall by ignoring it
> (returning 0 - rather than the default which is an error), because
> once an entry in the directory is created it is in the namespace, and
> they are never cached on the client.
>
> On Thu, May 10, 2018 at 1:48 PM, Jeremy Allison <jra@samba.org> wrote:
>> On Thu, May 10, 2018 at 10:11:43AM -0700, Pavel Shilovsky via samba-technical wrote:
>>> 2018-05-10 9:04 GMT-07:00 Steve French via samba-technical
>>> <samba-technical@lists.samba.org>:
>>> > As with NFS, which ignores sync on directory handles,
>>> > fsync on a directory handle is a noop for CIFS/SMB3.
>>> > Do not return an error on it.  It breaks some database
>>> > apps otherwise.
>>>
>>> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
>>
>> NAK on this patch. It's due to a specific Samba server
>> bug, which I've just fixed.
>>
>> Look at the man page for fsync() on directory handles
>> - in SMB2+ as well this is a useful thing for an
>> application to do.
>>
>> The broken Samba server returns NT_STATUS_ACCESS_DENIED
>> here. What you need to do is test the popular servers
>> (Windows, NetApp, EMC, Samba, OSX) and see which of
>> them are broken (not Windows obviously) and if so
>> what errors they return.
>>
>> Best case scenario it's just Samba that was broken,
>> so check for the specific NT_STATUS_ACCESS_DENIED
>> error and ignore, otherwise return the error to
>> the caller - they *NEED* it :-).
>>
>> Jeremy.
>
>
>
> --
> Thanks,
>
> Steve



-- 
Thanks,

Steve

  reply	other threads:[~2018-05-10 21:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-10 16:04 [PATCH] cifs/smb3: directory sync should not return an error Steve French
2018-05-10 16:37 ` Jeremy Allison
2018-05-10 17:11 ` Pavel Shilovsky
2018-05-10 18:48   ` Jeremy Allison
2018-05-10 20:28     ` Steve French
2018-05-10 21:56       ` Steve French [this message]
2018-05-10 22:08         ` ronnie sahlberg
2018-05-10 22:12           ` Jeremy Allison
2018-05-10 22:25             ` Steve French
2018-05-10 23:06               ` Jeremy Allison
2018-05-10 21:01 ` ronnie sahlberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH2r5mv-ccfA2vVD6sT8j7cYz1OAEh5PwS31NExr=CTYQUevsg@mail.gmail.com' \
    --to=smfrench@gmail.com \
    --cc=jra@samba.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=pavel.shilovsky@gmail.com \
    --cc=samba-technical@lists.samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).