Message ID | ZeHr+PH8spL5F+iZ@debian-BULLSEYE-live-builder-AMD64 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cifs: open_cached_dir(): add FILE_READ_EA to desired access | expand |
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 --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),
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(-)