mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
cifs: Do not add FILE_READ_ATTRIBUTES when using GENERIC_READ/EXECUTE/ALL
Individual bits GENERIC_READ, GENERIC_EXECUTE and GENERIC_ALL have meaning which includes also access right for FILE_READ_ATTRIBUTES. So specifying FILE_READ_ATTRIBUTES bit together with one of those GENERIC (except GENERIC_WRITE) does not do anything. This change prevents calling additional (fallback) code and sending more requests without FILE_READ_ATTRIBUTES when the primary request fails on -EACCES, as it is not needed at all. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
b07687edee
commit
e97aec7889
|
|
@ -158,7 +158,16 @@ int smb2_open_file(const unsigned int xid, struct cifs_open_parms *oparms, __u32
|
|||
if (smb2_path == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
/*
|
||||
* GENERIC_READ, GENERIC_EXECUTE, GENERIC_ALL and MAXIMUM_ALLOWED
|
||||
* contains also FILE_READ_ATTRIBUTES access right. So do not append
|
||||
* FILE_READ_ATTRIBUTES when not needed and prevent calling code path
|
||||
* for retry_without_read_attributes.
|
||||
*/
|
||||
if (!(oparms->desired_access & FILE_READ_ATTRIBUTES) &&
|
||||
!(oparms->desired_access & GENERIC_READ) &&
|
||||
!(oparms->desired_access & GENERIC_EXECUTE) &&
|
||||
!(oparms->desired_access & GENERIC_ALL) &&
|
||||
!(oparms->desired_access & MAXIMUM_ALLOWED)) {
|
||||
oparms->desired_access |= FILE_READ_ATTRIBUTES;
|
||||
retry_without_read_attributes = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user