OSDN Git Service

smb3: fix mode passed in on create for modetosid mount option
authorSteve French <stfrench@microsoft.com>
Fri, 6 Dec 2019 08:02:38 +0000 (02:02 -0600)
committerSteve French <stfrench@microsoft.com>
Fri, 6 Dec 2019 20:15:52 +0000 (14:15 -0600)
commitfdef665ba44ad5ed154af2acfb19ae2ee3bf5dcc
tree20f45c141c6a5dcefc0f5869d46b1179aae745f8
parent9a7d5a9e6d7921e1854b4606ce8c3e17d565f463
smb3: fix mode passed in on create for modetosid mount option

When using the special SID to store the mode bits in an ACE (See
http://technet.microsoft.com/en-us/library/hh509017(v=ws.10).aspx)
which is enabled with mount parm "modefromsid" we were not
passing in the mode via SMB3 create (although chmod was enabled).
SMB3 create allows a security descriptor context to be passed
in (which is more atomic and thus preferable to setting the mode
bits after create via a setinfo).

This patch enables setting the mode bits on create when using
modefromsid mount option.  In addition it fixes an endian
error in the definition of the Control field flags in the SMB3
security descriptor. It also makes the ACE type of the special
SID better match the documentation (and behavior of servers
which use this to store mode bits in SMB3 ACLs).

Signed-off-by: Steve French <stfrench@microsoft.com>
Acked-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
fs/cifs/cifsacl.c
fs/cifs/cifsacl.h
fs/cifs/cifsproto.h
fs/cifs/smb2pdu.c
fs/cifs/smb2pdu.h