summaryrefslogtreecommitdiff
path: root/fs/cifs/xattr.c
diff options
context:
space:
mode:
authorBoris Protopopov <pboris@amazon.com>2020-12-17 20:58:08 +0000
committerSteve French <stfrench@microsoft.com>2020-12-18 23:32:04 -0600
commit9541b81322e60120b299222919957becd7a13683 (patch)
treee8f685b2da9e36c575780539ca5381e931e6290b /fs/cifs/xattr.c
parent3970acf7ddb9aa01c4bdeef197495157c98a15f6 (diff)
Add SMB 2 support for getting and setting SACLs
Fix passing of the additional security info via version operations. Force new open when getting SACL and avoid reuse of files that were previously open without sufficient privileges to access SACLs. Signed-off-by: Boris Protopopov <pboris@amazon.com> Reviewed-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/xattr.c')
-rw-r--r--fs/cifs/xattr.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/cifs/xattr.c b/fs/cifs/xattr.c
index 9318a2acf4ee..6b658a1172ef 100644
--- a/fs/cifs/xattr.c
+++ b/fs/cifs/xattr.c
@@ -340,21 +340,19 @@ static int cifs_xattr_get(const struct xattr_handler *handler,
* fetch owner, DACL, and SACL if asked for full descriptor,
* fetch owner and DACL otherwise
*/
- u32 acllen, additional_info = 0;
+ u32 acllen, extra_info;
struct cifs_ntsd *pacl;
if (pTcon->ses->server->ops->get_acl == NULL)
goto out; /* rc already EOPNOTSUPP */
if (handler->flags == XATTR_CIFS_NTSD_FULL) {
- additional_info = OWNER_SECINFO | GROUP_SECINFO |
- DACL_SECINFO | SACL_SECINFO;
+ extra_info = SACL_SECINFO;
} else {
- additional_info = OWNER_SECINFO | GROUP_SECINFO |
- DACL_SECINFO;
+ extra_info = 0;
}
pacl = pTcon->ses->server->ops->get_acl(cifs_sb,
- inode, full_path, &acllen, additional_info);
+ inode, full_path, &acllen, extra_info);
if (IS_ERR(pacl)) {
rc = PTR_ERR(pacl);
cifs_dbg(VFS, "%s: error %zd getting sec desc\n",