cifs: open_cached_dir(): add FILE_READ_EA to desired access
authorEugene Korenevsky <ekorenevsky@astralinux.ru>
Fri, 1 Mar 2024 14:53:44 +0000 (17:53 +0300)
committerSteve French <stfrench@microsoft.com>
Thu, 14 Mar 2024 18:54:27 +0000 (13:54 -0500)
Since smb2_query_eas() reads EA and uses cached directory,
open_cached_dir() should request FILE_READ_EA access.

Otherwise listxattr() and getxattr() will fail with EACCES
(0xc0000022 STATUS_ACCESS_DENIED SMB status).

Link: https://bugzilla.kernel.org/show_bug.cgi?id=218543
Cc: stable@vger.kernel.org
Signed-off-by: Eugene Korenevsky <ekorenevsky@astralinux.ru>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cached_dir.c

index 3de5047a7ff988c2049350e464771e912b12894e..a0017724d5239312c14644bd15d2867880337d91 100644 (file)
@@ -239,7 +239,8 @@ replay_again:
                .tcon = tcon,
                .path = path,
                .create_options = cifs_create_options(cifs_sb, CREATE_NOT_FILE),
-               .desired_access =  FILE_READ_DATA | FILE_READ_ATTRIBUTES,
+               .desired_access =  FILE_READ_DATA | FILE_READ_ATTRIBUTES |
+                                  FILE_READ_EA,
                .disposition = FILE_OPEN,
                .fid = pfid,
                .replay = !!(retries),