diff mbox series

cifs: open_cached_dir(): add FILE_READ_EA to desired access

Message ID ZeHr+PH8spL5F+iZ@debian-BULLSEYE-live-builder-AMD64
State New
Headers show
Series cifs: open_cached_dir(): add FILE_READ_EA to desired access | expand

Commit Message

Eugene Korenevsky March 1, 2024, 2:53 p.m. UTC
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).

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=218543
Signed-off-by: Eugene Korenevsky <ekorenevsky@astralinux.ru>
---
 fs/smb/client/cached_dir.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Steve French March 14, 2024, 4:15 a.m. UTC | #1
Tentatively merged into cifs-2.6.git for-next pending additional review/testing

Let me know if any updates to this

On Fri, Mar 1, 2024 at 8:54 AM Eugene Korenevsky
<ekorenevsky@astralinux.ru> wrote:
>
> 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).
>
> BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=218543
> Signed-off-by: Eugene Korenevsky <ekorenevsky@astralinux.ru>
> ---
>  fs/smb/client/cached_dir.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/smb/client/cached_dir.c b/fs/smb/client/cached_dir.c
> index 3de5047a7ff9..a0017724d523 100644
> --- a/fs/smb/client/cached_dir.c
> +++ b/fs/smb/client/cached_dir.c
> @@ -239,7 +239,8 @@ int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon,
>                 .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),
> --
> 2.30.2
>
>
diff mbox series

Patch

diff --git a/fs/smb/client/cached_dir.c b/fs/smb/client/cached_dir.c
index 3de5047a7ff9..a0017724d523 100644
--- a/fs/smb/client/cached_dir.c
+++ b/fs/smb/client/cached_dir.c
@@ -239,7 +239,8 @@  int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon,
 		.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),