• Steve French's avatar
    SMB3: add support for recognizing WSL reparse tags · 13909d96
    Steve French authored
    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: default avatarSteve French <stfrench@microsoft.com>
    Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
    13909d96
readdir.c 29.9 KB