[PATCH] cifs/smb3: directory sync should not return an error

Jeremy Allison jra at samba.org
Thu May 10 18:48:17 UTC 2018

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 at 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 at 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 :-).


More information about the samba-technical mailing list