cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES
authorPali Rohár <pali@kernel.org>
Mon, 9 Dec 2024 19:44:23 +0000 (20:44 +0100)
committerSteve French <stfrench@microsoft.com>
Tue, 1 Apr 2025 09:58:00 +0000 (04:58 -0500)
commite255612b5ed9f179abe8196df7c2ba09dd227900
tree9e4b4fe987b446675d23da50e56145ee8fd5f4ba
parent4236ac9fe5b8b42756070d4abfb76fed718e87c2
cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES

Some operations, like WRITE, does not require FILE_READ_ATTRIBUTES access.

So when FILE_READ_ATTRIBUTES is not explicitly requested for
smb2_open_file() then first try to do SMB2 CREATE with FILE_READ_ATTRIBUTES
access (like it was before) and then fallback to SMB2 CREATE without
FILE_READ_ATTRIBUTES access (less common case).

This change allows to complete WRITE operation to a file when it does not
grant FILE_READ_ATTRIBUTES permission and its parent directory does not
grant READ_DATA permission (parent directory READ_DATA is implicit grant of
child FILE_READ_ATTRIBUTES permission).

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb2file.c