[PATCH] cifs/smb3: directory sync should not return an error
smfrench at gmail.com
Thu May 10 22:25:55 UTC 2018
On Thu, May 10, 2018 at 5:12 PM, Jeremy Allison <jra at samba.org> wrote:
> On Fri, May 11, 2018 at 08:08:46AM +1000, ronnie sahlberg wrote:
>> SMB2 FLUSH ?
>> MS-SMB2.pdf is pretty clear that FLUSH can only be used on files or pipes.
>> If we start using it for directory handles we would need some
>> clarifications about this use in the spec.
> Yes. MS-SMB2 is also wrong :-).
> I have test code that proves FLUSH works against any directory
> handle opened with FILE_ADD|DIRECTORY_ADD access mask granted.
> (Steve thought this might be special cased to just the root
> directory handle on a share, this turns out not to be the
> case - any directory handle with the required access works
>> I would wait until MS-SMB2 is updated before we start sending FLUSH on
>> directory handles.
> We need to deal with the protocol as it really is,
> not as the documentation would like it to be :-).
Current behavior seems to be that (for SMB2/SMB3 as with NFS)
servers are not expected to cache file creates. If we send a flush over
the wire without a lot more testing we could break even more apps - unless
we simply send the request and ignore the return code which I would prefer
not to do until we get feedback from more servers and clarification from
MS-SMB2). What we don't want to do is pass EINVAL back which breaks some.
Ronnie said it well:
" If/once ms-smb2.pdf is updated to describe the semantics for flush
on a directory, then we can think about using flush here. Not before.
Otherwise we just revert back to chasing implementation specific
behavior" (as we did with SMB1)
(so fix the current behavior - then think about whether we can safely
send this as a flush if there are any valid cases which MS-SMB2
exposes in the future).
More information about the samba-technical