]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - fs/cifs/cifsglob.h
Add reflink copy over SMB3.11 with new FSCTL_DUPLICATE_EXTENTS
[thirdparty/kernel/stable.git] / fs / cifs / cifsglob.h
index 22b289a3b1c4d3e12727cc0a005456fa9b295a00..81194e6c76010ed9d36a928d922ad161c66b0101 100644 (file)
@@ -171,6 +171,10 @@ enum smb_version {
        Smb_21,
        Smb_30,
        Smb_302,
+#ifdef CONFIG_CIFS_SMB311
+       Smb_311,
+#endif /* SMB311 */
+       Smb_version_err
 };
 
 struct mid_q_entry;
@@ -386,6 +390,9 @@ struct smb_version_operations {
        int (*clone_range)(const unsigned int, struct cifsFileInfo *src_file,
                        struct cifsFileInfo *target_file, u64 src_off, u64 len,
                        u64 dest_off);
+       int (*duplicate_extents)(const unsigned int, struct cifsFileInfo *src,
+                       struct cifsFileInfo *target_file, u64 src_off, u64 len,
+                       u64 dest_off);
        int (*validate_negotiate)(const unsigned int, struct cifs_tcon *);
        ssize_t (*query_all_EAs)(const unsigned int, struct cifs_tcon *,
                        const unsigned char *, const unsigned char *, char *,
@@ -1617,4 +1624,8 @@ extern struct smb_version_values smb30_values;
 #define SMB302_VERSION_STRING  "3.02"
 /*extern struct smb_version_operations smb302_operations;*/ /* not needed yet */
 extern struct smb_version_values smb302_values;
+#define SMB311_VERSION_STRING  "3.1.1"
+#define ALT_SMB311_VERSION_STRING "3.11"
+extern struct smb_version_operations smb311_operations;
+extern struct smb_version_values smb311_values;
 #endif /* _CIFS_GLOB_H */