vfs3: Pass "lease" through SMB_VFS_CREATE_FILE
authorVolker Lendecke <vl@samba.org>
Wed, 21 Aug 2013 13:56:14 +0000 (13:56 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 11 Aug 2014 19:11:16 +0000 (21:11 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
19 files changed:
examples/VFS/skel_opaque.c
examples/VFS/skel_transparent.c
source3/include/vfs.h
source3/include/vfs_macros.h
source3/modules/vfs_default.c
source3/modules/vfs_full_audit.c
source3/modules/vfs_media_harmony.c
source3/modules/vfs_time_audit.c
source3/modules/vfs_worm.c
source3/printing/nt_printing.c
source3/rpc_server/srvsvc/srv_srvsvc_nt.c
source3/smbd/dosmode.c
source3/smbd/nttrans.c
source3/smbd/open.c
source3/smbd/proto.h
source3/smbd/reply.c
source3/smbd/smb2_create.c
source3/smbd/trans2.c
source3/smbd/vfs.c

index 724dd7b210135c77482a6fc08def35989c67ead6..47b46a4db756890be4d4ef3b23b1e45a6b8c99e9 100644 (file)
@@ -169,6 +169,7 @@ static NTSTATUS skel_create_file(struct vfs_handle_struct *handle,
                                 uint32_t create_options,
                                 uint32_t file_attributes,
                                 uint32_t oplock_request,
+                                struct smb2_lease *lease,
                                 uint64_t allocation_size,
                                 uint32_t private_flags,
                                 struct security_descriptor *sd,
index 329b016d232ab97fa1d95e8d62ff9e32559ed7d6..fbb1323a6ea639ebb6fa218400d2e1f6f5153536 100644 (file)
@@ -164,6 +164,7 @@ static NTSTATUS skel_create_file(struct vfs_handle_struct *handle,
                                 uint32_t create_options,
                                 uint32_t file_attributes,
                                 uint32_t oplock_request,
+                                struct smb2_lease *lease,
                                 uint64_t allocation_size,
                                 uint32_t private_flags,
                                 struct security_descriptor *sd,
@@ -180,6 +181,7 @@ static NTSTATUS skel_create_file(struct vfs_handle_struct *handle,
                                        create_options,
                                        file_attributes,
                                        oplock_request,
+                                       lease,
                                        allocation_size,
                                        private_flags,
                                        sd, ea_list, result, pinfo);
index 6c0bf700684b189c08d456a2b47e2fa15733e30d..a81fb6c1bed87f118a32a286ffcd386d3a3fe6f6 100644 (file)
                fsp->pending_break_messages array */
 /* Leave at 31 - not yet released. add SMB_VFS_[GET/SET]_COMPRESSION() */
 
-#define SMB_VFS_INTERFACE_VERSION 31
+/* Bump to version 32 - Samba 4.2 will ship with that. */
+/* Version 32 - Add "lease" to CREATE_FILE operation */
+
+#define SMB_VFS_INTERFACE_VERSION 32
 
 /*
     All intercepted VFS operations must be declared as static functions inside module source
@@ -535,6 +538,7 @@ struct vfs_fn_pointers {
                                   uint32_t create_options,
                                   uint32_t file_attributes,
                                   uint32_t oplock_request,
+                                  struct smb2_lease *lease,
                                   uint64_t allocation_size,
                                   uint32_t private_flags,
                                   struct security_descriptor *sd,
@@ -940,6 +944,7 @@ NTSTATUS smb_vfs_call_create_file(struct vfs_handle_struct *handle,
                                  uint32_t create_options,
                                  uint32_t file_attributes,
                                  uint32_t oplock_request,
+                                 struct smb2_lease *lease,
                                  uint64_t allocation_size,
                                  uint32_t private_flags,
                                  struct security_descriptor *sd,
index de9f55fda88adf1f1eec4a4fe8dbc9c5472a9d7f..e2d494dca6ecf05ef5fcc5098599ec0e60be7cd8 100644 (file)
        smb_vfs_call_open((handle)->next, (fname), (fsp), (flags), (mode))
 
 #define SMB_VFS_CREATE_FILE(conn, req, root_dir_fid, smb_fname, access_mask, share_access, create_disposition, \
-        create_options, file_attributes, oplock_request, allocation_size, private_flags, sd, ea_list, result, pinfo) \
+       create_options, file_attributes, oplock_request, lease, allocation_size, private_flags, sd, ea_list, result, pinfo) \
        smb_vfs_call_create_file((conn)->vfs_handles, (req), (root_dir_fid), (smb_fname), (access_mask), (share_access), (create_disposition), \
-        (create_options), (file_attributes), (oplock_request), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo))
+       (create_options), (file_attributes), (oplock_request), (lease), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo))
 #define SMB_VFS_NEXT_CREATE_FILE(handle, req, root_dir_fid, smb_fname, access_mask, share_access, create_disposition, \
-        create_options, file_attributes, oplock_request, allocation_size, private_flags, sd, ea_list, result, pinfo) \
+       create_options, file_attributes, oplock_request, lease, allocation_size, private_flags, sd, ea_list, result, pinfo) \
        smb_vfs_call_create_file((handle)->next, (req), (root_dir_fid), (smb_fname), (access_mask), (share_access), (create_disposition), \
-        (create_options), (file_attributes), (oplock_request), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo))
+       (create_options), (file_attributes), (oplock_request), (lease), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo))
 
 #define SMB_VFS_CLOSE(fsp) \
        smb_vfs_call_close((fsp)->conn->vfs_handles, (fsp))
index b8f4117fd195f541ca7e7c18e813c6f9565ccc20..3430cd0d68cc783cd6342ce4d98d95b410711c28 100644 (file)
@@ -517,6 +517,7 @@ static NTSTATUS vfswrap_create_file(vfs_handle_struct *handle,
                                    uint32_t create_options,
                                    uint32_t file_attributes,
                                    uint32_t oplock_request,
+                                   struct smb2_lease *lease,
                                    uint64_t allocation_size,
                                    uint32_t private_flags,
                                    struct security_descriptor *sd,
@@ -527,7 +528,7 @@ static NTSTATUS vfswrap_create_file(vfs_handle_struct *handle,
        return create_file_default(handle->conn, req, root_dir_fid, smb_fname,
                                   access_mask, share_access,
                                   create_disposition, create_options,
-                                  file_attributes, oplock_request,
+                                  file_attributes, oplock_request, lease,
                                   allocation_size, private_flags,
                                   sd, ea_list, result,
                                   pinfo);
index 7f0222cb0fc707e9281bc2738c7da2664a99e7ca..a51ab758154c40c36b06b702d3113164653e650b 100644 (file)
@@ -863,6 +863,7 @@ static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle,
                                      uint32_t create_options,
                                      uint32_t file_attributes,
                                      uint32_t oplock_request,
+                                     struct smb2_lease *lease,
                                      uint64_t allocation_size,
                                      uint32_t private_flags,
                                      struct security_descriptor *sd,
@@ -907,6 +908,7 @@ static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle,
                create_options,                         /* create_options */
                file_attributes,                        /* file_attributes */
                oplock_request,                         /* oplock_request */
+               lease,                                  /* lease */
                allocation_size,                        /* allocation_size */
                private_flags,
                sd,                                     /* sd */
index bba98052e0056207b3eb32e7db32a44df4487d22..f9432dcfebd37b2cae25e02abbc8d16125fe194d 100644 (file)
@@ -1207,6 +1207,7 @@ static NTSTATUS mh_create_file(vfs_handle_struct *handle,
                uint32_t create_options,
                uint32_t file_attributes,
                uint32_t oplock_request,
+               struct smb2_lease *lease,
                uint64_t allocation_size,
                uint32_t private_flags,
                struct security_descriptor *sd,
@@ -1234,6 +1235,7 @@ static NTSTATUS mh_create_file(vfs_handle_struct *handle,
                        create_options,
                        file_attributes,
                        oplock_request,
+                       lease,
                        allocation_size,
                        private_flags,
                        sd,
@@ -1270,6 +1272,7 @@ static NTSTATUS mh_create_file(vfs_handle_struct *handle,
                create_options,
                file_attributes,
                oplock_request,
+               lease,
                allocation_size,
                private_flags,
                sd,
index 3a45ecdb8878268b8259f9a0c4e46255f7c18da5..9dbbf8bdea9e23c940a8fc69b46325119a06b567 100644 (file)
@@ -496,6 +496,7 @@ static NTSTATUS smb_time_audit_create_file(vfs_handle_struct *handle,
                                           uint32_t create_options,
                                           uint32_t file_attributes,
                                           uint32_t oplock_request,
+                                          struct smb2_lease *lease,
                                           uint64_t allocation_size,
                                           uint32_t private_flags,
                                           struct security_descriptor *sd,
@@ -519,6 +520,7 @@ static NTSTATUS smb_time_audit_create_file(vfs_handle_struct *handle,
                create_options,                         /* create_options */
                file_attributes,                        /* file_attributes */
                oplock_request,                         /* oplock_request */
+               lease,                                  /* lease */
                allocation_size,                        /* allocation_size */
                private_flags,
                sd,                                     /* sd */
index 77a18cad3790d7cf209a2d7e79e147137df3ddce..3097419f309ebe85a453511f80e2ba6e84754767 100644 (file)
@@ -32,6 +32,7 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle,
                                     uint32_t create_options,
                                     uint32_t file_attributes,
                                     uint32_t oplock_request,
+                                    struct smb2_lease *lease,
                                     uint64_t allocation_size,
                                     uint32_t private_flags,
                                     struct security_descriptor *sd,
@@ -62,7 +63,7 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle,
        status = SMB_VFS_NEXT_CREATE_FILE(
                handle, req, root_dir_fid, smb_fname, access_mask,
                share_access, create_disposition, create_options,
-               file_attributes, oplock_request, allocation_size,
+               file_attributes, oplock_request, lease, allocation_size,
                private_flags, sd, ea_list, result, pinfo);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
index b76badf3f02053cac382df4d25291e9aae6e4da5..3a3a3396c88033b682aa61176a6feeb0e9825167 100644 (file)
@@ -531,6 +531,7 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -584,6 +585,7 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -762,6 +764,7 @@ static uint32 get_correct_cversion(struct auth_session_info *session_info,
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* private_flags */
                0,                                      /* allocation_size */
                NULL,                                   /* sd */
index 11abc6c8385075640e3932b42b584b5e1b7d8d44..855b8c7fb72cac44222e4d6fac34d343be3f0701 100644 (file)
@@ -2359,6 +2359,7 @@ WERROR _srvsvc_NetGetFileSecurity(struct pipes_struct *p,
                0,                                      /* create_options */
                0,                                      /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -2506,6 +2507,7 @@ WERROR _srvsvc_NetSetFileSecurity(struct pipes_struct *p,
                0,                                      /* create_options */
                0,                                      /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
index 2e6871191b327c68e5ba48d2105651f11ba4ccb2..965e695640c894e30351197917c11365a0a06b28 100644 (file)
@@ -1128,6 +1128,7 @@ static NTSTATUS get_file_handle_for_metadata(connection_struct *conn,
                0,                                      /* create_options */
                0,                                      /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                 0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
index 2521a1ef0079b4677c5d0f1ad86c54df79eda0ca..0cf1ea32d3ba50a855ae2cbe2840f20afc6297bd 100644 (file)
@@ -574,6 +574,7 @@ void reply_ntcreate_and_X(struct smb_request *req)
                create_options,                         /* create_options */
                file_attributes,                        /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                allocation_size,                        /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -1180,6 +1181,7 @@ static void call_nt_transact_create(connection_struct *conn,
                create_options,                         /* create_options */
                file_attributes,                        /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                allocation_size,                        /* allocation_size */
                0,                                      /* private_flags */
                sd,                                     /* sd */
@@ -1423,6 +1425,7 @@ static NTSTATUS copy_internals(TALLOC_CTX *ctx,
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                NO_OPLOCK,                              /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -1447,6 +1450,7 @@ static NTSTATUS copy_internals(TALLOC_CTX *ctx,
                0,                                      /* create_options */
                fattr,                                  /* file_attributes */
                NO_OPLOCK,                              /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
index a8bd974a3bbb22ae1733a64159a6b0e5141945a8..4157280b084f49dfed9ef65c5ec4fa629a823b67 100644 (file)
@@ -3352,6 +3352,7 @@ NTSTATUS create_directory(connection_struct *conn, struct smb_request *req,
                FILE_DIRECTORY_FILE,                    /* create_options */
                FILE_ATTRIBUTE_DIRECTORY,               /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -3530,6 +3531,7 @@ NTSTATUS open_streams_for_delete(connection_struct *conn,
                         0,                     /* create_options */
                         FILE_ATTRIBUTE_NORMAL, /* file_attributes */
                         0,                     /* oplock_request */
+                        NULL,                  /* lease */
                         0,                     /* allocation_size */
                         NTCREATEX_OPTIONS_PRIVATE_STREAM_DELETE, /* private_flags */
                         NULL,                  /* sd */
@@ -4284,6 +4286,7 @@ NTSTATUS create_file_default(connection_struct *conn,
                             uint32_t create_options,
                             uint32_t file_attributes,
                             uint32_t oplock_request,
+                            struct smb2_lease *lease,
                             uint64_t allocation_size,
                             uint32_t private_flags,
                             struct security_descriptor *sd,
index 3905a742a91a6de56f9e794d0d99a0fbf6359809..692f5828159e3a5910d40952db9222717cec7e12 100644 (file)
@@ -639,6 +639,7 @@ NTSTATUS create_file_default(connection_struct *conn,
                             uint32_t create_options,
                             uint32_t file_attributes,
                             uint32_t oplock_request,
+                            struct smb2_lease *lease,
                             uint64_t allocation_size,
                             uint32_t private_flags,
                             struct security_descriptor *sd,
index 6c664149b181c9f9c27d9ce81c46731e1140a8e8..4cb446fb23e6aa24418018ccdaadd530ffff9d12 100644 (file)
@@ -1948,6 +1948,7 @@ void reply_open(struct smb_request *req)
                create_options,                         /* create_options */
                dos_attr,                               /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                private_flags,
                NULL,                                   /* sd */
@@ -2116,6 +2117,7 @@ void reply_open_and_X(struct smb_request *req)
                create_options,                         /* create_options */
                smb_attr,                               /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                private_flags,
                NULL,                                   /* sd */
@@ -2363,6 +2365,7 @@ void reply_mknew(struct smb_request *req)
                create_options,                         /* create_options */
                fattr,                                  /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -2490,6 +2493,7 @@ void reply_ctemp(struct smb_request *req)
                        0,                                      /* create_options */
                        fattr,                                  /* file_attributes */
                        oplock_request,                         /* oplock_request */
+                       NULL,                                   /* lease */
                        0,                                      /* allocation_size */
                        0,                                      /* private_flags */
                        NULL,                                   /* sd */
@@ -2707,6 +2711,7 @@ static NTSTATUS do_unlink(connection_struct *conn,
                 posix_paths ? FILE_FLAG_POSIX_SEMANTICS|0777 :
                                FILE_ATTRIBUTE_NORMAL,
                 0,                     /* oplock_request */
+                NULL,                  /* lease */
                 0,                     /* allocation_size */
                 0,                     /* private_flags */
                 NULL,                  /* sd */
@@ -5968,6 +5973,7 @@ void reply_rmdir(struct smb_request *req)
                FILE_DIRECTORY_FILE,                    /* create_options */
                FILE_ATTRIBUTE_DIRECTORY,               /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -6735,6 +6741,7 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
                        create_options,                 /* create_options */
                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0, /* file_attributes */
                        0,                              /* oplock_request */
+                       NULL,                           /* lease */
                        0,                              /* allocation_size */
                        0,                              /* private_flags */
                        NULL,                           /* sd */
@@ -6881,6 +6888,7 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
                        create_options,                 /* create_options */
                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0, /* file_attributes */
                        0,                              /* oplock_request */
+                       NULL,                           /* lease */
                        0,                              /* allocation_size */
                        0,                              /* private_flags */
                        NULL,                           /* sd */
@@ -7150,6 +7158,7 @@ NTSTATUS copy_file(TALLOC_CTX *ctx,
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -7179,6 +7188,7 @@ NTSTATUS copy_file(TALLOC_CTX *ctx,
                0,                                      /* create_options */
                dosattrs,                               /* file_attributes */
                INTERNAL_OPEN_ONLY,                     /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
index 6709f5199e62abfb47b9d681ba5e837c42b4a297..18534349bdd5de95c24b5929a2e2280e6996e18e 100644 (file)
@@ -948,6 +948,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
                                                     in_create_options,
                                                     in_file_attributes,
                                                     map_smb2_oplock_levels_to_samba(requested_oplock_level),
+                                                    NULL,
                                                     allocation_size,
                                                     0, /* private_flags */
                                                     sec_desc,
index 9a02a74d2c200d9cea9bc33d185f662b3d05fc53..1e2c02e12d5f574843233b09eaa1d6fbe93d4720 100644 (file)
@@ -1222,6 +1222,7 @@ static void call_trans2open(connection_struct *conn,
                create_options,                         /* create_options */
                open_attr,                              /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                open_size,                              /* allocation_size */
                private_flags,
                NULL,                                   /* sd */
@@ -5889,6 +5890,7 @@ static NTSTATUS smb_set_file_size(connection_struct *conn,
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -6874,6 +6876,7 @@ static NTSTATUS smb_set_file_allocation_info(connection_struct *conn,
                0,                                      /* create_options */
                FILE_ATTRIBUTE_NORMAL,                  /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -7389,6 +7392,7 @@ static NTSTATUS smb_posix_mkdir(connection_struct *conn,
                FILE_DIRECTORY_FILE,                    /* create_options */
                mod_unixmode,                           /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -7621,6 +7625,7 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
                create_options,                         /* create_options */
                mod_unixmode,                           /* file_attributes */
                oplock_request,                         /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
@@ -7751,6 +7756,7 @@ static NTSTATUS smb_posix_unlink(connection_struct *conn,
                create_options,                         /* create_options */
                FILE_FLAG_POSIX_SEMANTICS|0777,         /* file_attributes */
                0,                                      /* oplock_request */
+               NULL,                                   /* lease */
                0,                                      /* allocation_size */
                0,                                      /* private_flags */
                NULL,                                   /* sd */
index c219b1f62ce2667ef96616cba61a8f83122ec8fc..744db7ad7d9c7fe16c5fb7a96d817d54ba8cc496 100644 (file)
@@ -1542,6 +1542,7 @@ NTSTATUS smb_vfs_call_create_file(struct vfs_handle_struct *handle,
                                  uint32_t create_options,
                                  uint32_t file_attributes,
                                  uint32_t oplock_request,
+                                 struct smb2_lease *lease,
                                  uint64_t allocation_size,
                                  uint32_t private_flags,
                                  struct security_descriptor *sd,
@@ -1553,7 +1554,7 @@ NTSTATUS smb_vfs_call_create_file(struct vfs_handle_struct *handle,
        return handle->fns->create_file_fn(
                handle, req, root_dir_fid, smb_fname, access_mask,
                share_access, create_disposition, create_options,
-               file_attributes, oplock_request, allocation_size,
+               file_attributes, oplock_request, lease, allocation_size,
                private_flags, sd, ea_list,
                result, pinfo);
 }