]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
SMB3: add support for recognizing WSL reparse tags
authorSteve French <stfrench@microsoft.com>
Thu, 22 Oct 2020 04:54:19 +0000 (23:54 -0500)
committerSteve French <stfrench@microsoft.com>
Thu, 22 Oct 2020 17:17:59 +0000 (12:17 -0500)
commit13909d96c84afd409bf11aa6c8fbcb1efacb12eb
treeb0fd8325efae46fcf9164fd27231307ce253df75
parentd367cb960ce88914898cbfa43645c2e43ede9465
SMB3: add support for recognizing WSL reparse tags

The IO_REPARSE_TAG_LX_ tags originally were used by WSL but they
are preferred by the Linux client in some cases since, unlike
the NFS reparse tag (or EAs), they don't require an extra query
to determine which type of special file they represent.

Add support for readdir to recognize special file types of
FIFO, SOCKET, CHAR, BLOCK and SYMLINK.  This can be tested
by creating these special files in WSL Linux and then
sharing that location on the Windows server and mounting
to the Windows server to access them.

Prior to this patch all of the special files would show up
as being of type 'file' but with this patch they can be seen
with the correct file type as can be seen below:

  brwxr-xr-x 1 root root 0, 0 Oct 21 17:10 block
  crwxr-xr-x 1 root root 0, 0 Oct 21 17:46 char
  drwxr-xr-x 2 root root    0 Oct 21 18:27 dir
  prwxr-xr-x 1 root root    0 Oct 21 16:21 fifo
  -rwxr-xr-x 1 root root    0 Oct 21 15:48 file
  lrwxr-xr-x 1 root root    0 Oct 21 15:52 symlink-to-file

TODO: go through all documented reparse tags to see if we can
reasonably map some of them to directories vs. files vs. symlinks
and also add support for device numbers for block and char
devices.

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
fs/cifs/readdir.c