• Pali Rohár's avatar
    cifs: Add support for reading SFU symlink location · cf2ce673
    Pali Rohár authored
    Currently when sfu mount option is specified then CIFS can recognize SFU
    symlink, but is not able to read symlink target location. readlink()
    syscall just returns that operation is not supported.
    
    Implement this missing functionality in cifs_sfu_type() function. Read
    target location of SFU-style symlink, parse it and fill into fattr's
    cf_symlink_target member.
    
    SFU-style symlink is file which has system attribute set and file content
    is buffer "IntxLNK\1" (8th byte is 0x01) followed by the target location
    encoded in little endian UCS-2/UTF-16. This format was introduced in
    Interix 3.0 subsystem, as part of the Microsoft SFU 3.0 and is used also by
    all later versions. Previous versions had no symlink support.
    Signed-off-by: default avatarPali Rohár <pali@kernel.org>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    cf2ce673
inode.c 86 KB