OSDN Git Service

smb: client: fix broken file attrs with nodfs mounts
authorPaulo Alcantara <pc@manguebit.com>
Wed, 28 Jun 2023 00:24:49 +0000 (21:24 -0300)
committerSteve French <stfrench@microsoft.com>
Wed, 28 Jun 2023 16:47:53 +0000 (11:47 -0500)
commitd439b29057e26464120fc6c18f97433aa003b5fe
tree7a6acd4119f8c8721cbd153b0d8891bba8172c04
parent380958ac4f93cca18b0d5775b4682ad1dff87f79
smb: client: fix broken file attrs with nodfs mounts

*_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: c877ce47e137 ("cifs: reduce roundtrips on create/qinfo requests")
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb2inode.c