diff options
author | Paulo Alcantara <pc@manguebit.com> | 2023-11-26 05:55:04 +0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2024-01-08 00:46:06 +0300 |
commit | 514d793e27a310eb26b112c1f8f1a160472907e5 (patch) | |
tree | 54cea0694e0874fe597f8e87a1604f61b9d9a223 /fs/smb/client/cifsglob.h | |
parent | 5408990aa662bcfd6ba894734023a023a16e8729 (diff) | |
download | linux-514d793e27a310eb26b112c1f8f1a160472907e5.tar.xz |
smb: client: allow creating symlinks via reparse points
Add support for creating symlinks via IO_REPARSE_TAG_SYMLINK reparse
points in SMB2+.
These are fully supported by most SMB servers and documented in
MS-FSCC. Also have the advantage of requiring fewer roundtrips as
their symlink targets can be parsed directly from CREATE responses on
STATUS_STOPPED_ON_SYMLINK errors.
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202311260838.nx5mkj1j-lkp@intel.com/
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/client/cifsglob.h')
-rw-r--r-- | fs/smb/client/cifsglob.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h index d5d6aedef558..f840756e0169 100644 --- a/fs/smb/client/cifsglob.h +++ b/fs/smb/client/cifsglob.h @@ -574,6 +574,12 @@ struct smb_version_operations { int (*parse_reparse_point)(struct cifs_sb_info *cifs_sb, struct kvec *rsp_iov, struct cifs_open_info_data *data); + int (*create_reparse_symlink)(const unsigned int xid, + struct inode *inode, + struct dentry *dentry, + struct cifs_tcon *tcon, + const char *full_path, + const char *symname); }; struct smb_version_values { |