linux/fs/smb/client
Paulo Alcantara babaab6ef6 smb: client: fix broken file attrs with nodfs mounts
[ Upstream commit d439b29057 ]

*_get_inode_info() functions expect -EREMOTE when query path info
calls find a DFS link, regardless whether !CONFIG_CIFS_DFS_UPCALL or
'nodfs' mount option.  Otherwise, those files will miss the fake DFS
file attributes.

Before patch

  $ mount.cifs //srv/dfs /mnt/1 -o ...,nodfs
  $ ls -l /mnt/1
  ls: cannot access '/mnt/1/link': Operation not supported
  total 0
  -rwxr-xr-x 1 root root 0 Jul 26  2022 dfstest2_file1.txt
  drwxr-xr-x 2 root root 0 Aug  8  2022 dir1
  d????????? ? ?    ?    ?            ? link

After patch

  $ mount.cifs //srv/dfs /mnt/1 -o ...,nodfs
  $ ls -l /mnt/1
  total 0
  -rwxr-xr-x 1 root root 0 Jul 26  2022 dfstest2_file1.txt
  drwxr-xr-x 2 root root 0 Aug  8  2022 dir1
  drwx--x--x 2 root root 0 Jun 26 20:29 link

Fixes: c877ce47e1 ("cifs: reduce roundtrips on create/qinfo requests")
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-07-19 16:21:44 +02:00
..
asn1.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cached_dir.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cached_dir.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_debug.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_debug.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_dfs_ref.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_fs_sb.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_ioctl.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_spnego.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_spnego.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_spnego_negtokeninit.asn1 smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_swn.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_swn.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_unicode.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_unicode.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifs_uniupr.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsacl.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsacl.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsencrypt.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsfs.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsfs.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsglob.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifspdu.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsproto.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifsroot.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
cifssmb.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
connect.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
dfs_cache.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
dfs_cache.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
dir.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
dns_resolve.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
dns_resolve.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
export.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
file.c SMB3: Do not send lease break acknowledgment if all file handles have been closed 2023-07-19 16:21:43 +02:00
fs_context.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
fs_context.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
fscache.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
fscache.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
inode.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
ioctl.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
Kconfig smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
link.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
Makefile smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
misc.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
netlink.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
netlink.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
netmisc.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
nterr.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
nterr.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
ntlmssp.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
readdir.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
rfc1002pdu.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
sess.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb1ops.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2file.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2glob.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2inode.c smb: client: fix broken file attrs with nodfs mounts 2023-07-19 16:21:44 +02:00
smb2maperror.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2misc.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2ops.c cifs: do all necessary checks for credits within or before locking 2023-07-19 16:21:44 +02:00
smb2pdu.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2pdu.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2proto.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2status.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smb2transport.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smbdirect.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smbdirect.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smbencrypt.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
smberr.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
trace.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
trace.h smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
transport.c cifs: do all necessary checks for credits within or before locking 2023-07-19 16:21:44 +02:00
unc.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
winucase.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00
xattr.c smb: move client and server files to common directory fs/smb 2023-06-28 11:12:40 +02:00