The branch, master has been updated via 322574834f1 vfs: remove dirfsp arg from SMB_VFS_CREATE_FILE() via 1c444f9c37c smbd: remove fsp->dirfsp via b133b81d8d1 smbd: avoid using dirfsp arg in create_file_default() via a366b756a1e vfs_fruit: avoid using fsp->dirsp via 9d84a2356b1 smbd: remove dirfsp arg from create_file_unixpath() via a7544661816 smbd: remove dirsp arg from open_directory() via 7ccaff48575 smbd: remove dirfsp arg from mkdir_internal() via d196cf46042 vfs_fruit: use VFS ftruncate function in fruit_ftruncate_rsrc_adouble() via 187353d91cb smbd: switch caller of fd_openat() to fd_open() via 4389ae9ca0c vfs_fruit: ensure the buffer passed to file_lines_parse() is 0-terminated via 616b64c3627 s4/torture: use unique filename for torture_samba3_hide() test via 176290eb68f vfs_default: realign vfswrap_fgetxattr() args via 089d8f44381 vfs: add and use vfs_fake_fd() via 80ac7fa7c4c build: remove smbd_conn private library from a3cd3153212 python2 reduction: Merge remaining compat code into common
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 322574834f1e71bc01f21be9059ca4d386517c84 Author: Ralph Boehme <s...@samba.org> Date: Fri Oct 2 17:29:58 2020 +0200 vfs: remove dirfsp arg from SMB_VFS_CREATE_FILE() This was supposed to be a shortcut to avoid passing dirfsp around as an explicit function argument throughout the whole codebase when the new VFS design idea was based on using *AT functions throughout the VFS. Now that we've opted for basing the VFS on handles and *AT functions will only be used in a much more limitted extent, it makes sense to remove this internal dirfsp reference, otherwise the combination of internal fsp->dirfsp and smb_fname->fsp is going to be a tough to wrap your head around. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Fri Oct 2 21:00:05 UTC 2020 on sn-devel-184 commit 1c444f9c37c01f986cbe880f0a6d4abdd8c34a0b Author: Ralph Boehme <s...@samba.org> Date: Fri Oct 2 16:51:16 2020 +0200 smbd: remove fsp->dirfsp This was supposed to be a shortcut to avoid passing dirfsp around as an explicit function argument throughout the whole codebase when the new VFS design idea was based on using *AT functions throughout the VFS. Now that we've opted for basing the VFS on handles and *AT functions will only be used in a much more limitted extent, it makes sense to remove this internal dirfsp reference, otherwise the combination of internal fsp->dirfsp and smb_fname->fsp is going to be a tough to wrap your head around. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit b133b81d8d18b998ee8e01ef034732c36169bf98 Author: Ralph Boehme <s...@samba.org> Date: Fri Oct 2 17:25:33 2020 +0200 smbd: avoid using dirfsp arg in create_file_default() This is not used anymore in the callees. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit a366b756a1e0118295eb94b7393e3f476f39862c Author: Ralph Boehme <s...@samba.org> Date: Mon Jun 22 15:04:18 2020 +0200 vfs_fruit: avoid using fsp->dirsp fsp->dirfsp will eventually go away again. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 9d84a2356b1000b222f303e8cfd20badc998c8fb Author: Ralph Boehme <s...@samba.org> Date: Fri Oct 2 16:41:27 2020 +0200 smbd: remove dirfsp arg from create_file_unixpath() Prepares for removing the dirfsp arg from SMB_VFS_CREATE_FILE() again. In the future dirfsp has to opened as needed within create_file_unixpath() and below. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit a7544661816a3d06cdc67e1e08a9afca81d7cf9b Author: Ralph Boehme <s...@samba.org> Date: Fri Oct 2 16:30:03 2020 +0200 smbd: remove dirsp arg from open_directory() Prepares for removing the dirfsp arg from SMB_VFS_CREATE_FILE() again. In the future open_directory() will open the dirfsp itself. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 7ccaff48575b1a94a778f43409505f149b6bdcb8 Author: Ralph Boehme <s...@samba.org> Date: Tue Jun 23 14:10:21 2020 +0200 smbd: remove dirfsp arg from mkdir_internal() Prepares for removing the dirfsp arg from SMB_VFS_CREATE_FILE() again. In the future mkdir_internal() will open the dirfsp itself as needed. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit d196cf4604208b158a6872ece20be6014a0198f9 Author: Ralph Boehme <s...@samba.org> Date: Tue Sep 29 11:15:10 2020 +0200 vfs_fruit: use VFS ftruncate function in fruit_ftruncate_rsrc_adouble() Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 187353d91cb9ffe441b84dccb4a8a5a5ce6281af Author: Ralph Boehme <s...@samba.org> Date: Wed Sep 30 16:26:29 2020 +0200 smbd: switch caller of fd_openat() to fd_open() fd_openat() was added to be used with real dirfsp, but after adding pathref fd support we will never use this. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 4389ae9ca0ceed6c56d315c57ac1e8590ab7f699 Author: Ralph Boehme <s...@samba.org> Date: Thu Aug 6 12:55:33 2020 +0200 vfs_fruit: ensure the buffer passed to file_lines_parse() is 0-terminated Otherwise valgrind complains... Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 616b64c3627bfee4f4f8541c0b5e6a675c24a643 Author: Ralph Boehme <s...@samba.org> Date: Wed Sep 16 15:40:36 2020 +0200 s4/torture: use unique filename for torture_samba3_hide() test The filename "test.txt" is also used by other tests and without O_PATH the file can't be removed at the end of this tests: open_smb_fname_fsp() fails with ACCESS_DENIED because the POSIX mode of the file is 0000 and become_root() used in the #ifndef O_PATH fallback case doesn't work in CI. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 176290eb68f57f953821b33130f595d2cdb79089 Author: Ralph Boehme <s...@samba.org> Date: Wed Jun 10 16:01:18 2020 +0200 vfs_default: realign vfswrap_fgetxattr() args Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 089d8f443814af1620982d6834fba74e03933ad1 Author: Ralph Boehme <s...@samba.org> Date: Thu Jul 23 07:32:11 2020 +0200 vfs: add and use vfs_fake_fd() Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 80ac7fa7c4c728bef4f947872c090fec35fb26f0 Author: Ralph Boehme <s...@samba.org> Date: Sun Sep 27 08:52:58 2020 +0200 build: remove smbd_conn private library This is not needed anymore since 6822baa2920f30374ec84363497d97e24f359fab. Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> ----------------------------------------------------------------------- Summary of changes: examples/VFS/skel_opaque.c | 1 - examples/VFS/skel_transparent.c | 2 - source3/include/vfs.h | 9 +-- source3/include/vfs_macros.h | 8 +- source3/lib/adouble.c | 6 -- source3/lib/filename_util.c | 20 ----- source3/modules/vfs_default.c | 9 ++- source3/modules/vfs_fruit.c | 38 ++-------- source3/modules/vfs_full_audit.c | 2 - source3/modules/vfs_media_harmony.c | 3 - source3/modules/vfs_not_implemented.c | 1 - source3/modules/vfs_streams_xattr.c | 14 +--- source3/modules/vfs_time_audit.c | 2 - source3/modules/vfs_unityed_media.c | 3 - source3/modules/vfs_worm.c | 3 +- source3/printing/nt_printing.c | 3 - source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 2 - source3/smbd/close.c | 12 --- source3/smbd/dosmode.c | 1 - source3/smbd/durable.c | 5 +- source3/smbd/nttrans.c | 4 - source3/smbd/open.c | 119 ++++-------------------------- source3/smbd/proto.h | 5 +- source3/smbd/reply.c | 11 --- source3/smbd/smb2_create.c | 1 - source3/smbd/trans2.c | 8 -- source3/smbd/vfs.c | 21 +++++- source3/utils/net_vfs.c | 1 - source3/wscript_build | 7 +- source4/torture/raw/samba3hide.c | 2 +- 30 files changed, 61 insertions(+), 262 deletions(-) Changeset truncated at 500 lines: diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c index 0a6ca4d9200..90ee82ab258 100644 --- a/examples/VFS/skel_opaque.c +++ b/examples/VFS/skel_opaque.c @@ -204,7 +204,6 @@ static int skel_openat(struct vfs_handle_struct *handle, static NTSTATUS skel_create_file(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c index 677af2217bf..d48ac47443b 100644 --- a/examples/VFS/skel_transparent.c +++ b/examples/VFS/skel_transparent.c @@ -212,7 +212,6 @@ static int skel_openat(struct vfs_handle_struct *handle, static NTSTATUS skel_create_file(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -231,7 +230,6 @@ static NTSTATUS skel_create_file(struct vfs_handle_struct *handle, { return SMB_VFS_NEXT_CREATE_FILE(handle, req, - dirfsp, smb_fname, access_mask, share_access, diff --git a/source3/include/vfs.h b/source3/include/vfs.h index d527f850628..b282e2a361b 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -327,9 +327,12 @@ * Version 43 - SMB_VFS_READ_DFS_PATHAT() should take a non-const name. There's no easy way to return stat info for a DFS link otherwise. + * Change to Version 44 - will ship with 4.14. + * Version 44 - Remove dirfsp arg from struct files_struct + * Version 44 - Remove dirfsp arg to SMB_VFS_CREATE_FILE() */ -#define SMB_VFS_INTERFACE_VERSION 43 +#define SMB_VFS_INTERFACE_VERSION 44 /* All intercepted VFS operations must be declared as static functions inside module source @@ -384,7 +387,6 @@ typedef struct files_struct { struct smbXsrv_open *op; struct connection_struct *conn; struct fd_handle *fh; - struct files_struct *dirfsp; unsigned int num_smb_operations; struct file_id file_id; uint64_t initial_allocation_size; /* Faked up initial allocation on disk. */ @@ -773,7 +775,6 @@ struct vfs_fn_pointers { mode_t mode); NTSTATUS (*create_file_fn)(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -1288,7 +1289,6 @@ int smb_vfs_call_openat(struct vfs_handle_struct *handle, mode_t mode); NTSTATUS smb_vfs_call_create_file(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -1749,7 +1749,6 @@ int vfs_not_implemented_openat(vfs_handle_struct *handle, mode_t mode); NTSTATUS vfs_not_implemented_create_file(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index e0a8d391945..70d9ab6784c 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -147,14 +147,14 @@ #define SMB_VFS_NEXT_OPENAT(handle, dirfsp, smb_fname, fsp, flags, mode) \ smb_vfs_call_openat((handle)->next, (dirfsp), (smb_fname), (fsp), (flags), (mode)) -#define SMB_VFS_CREATE_FILE(conn, req, dirfsp, smb_fname, access_mask, share_access, create_disposition, \ +#define SMB_VFS_CREATE_FILE(conn, req, smb_fname, access_mask, share_access, create_disposition, \ create_options, file_attributes, oplock_request, lease, allocation_size, private_flags, sd, ea_list, result, pinfo, in_context_blobs, out_context_blobs) \ - smb_vfs_call_create_file((conn)->vfs_handles, (req), (dirfsp), (smb_fname), (access_mask), (share_access), (create_disposition), \ + smb_vfs_call_create_file((conn)->vfs_handles, (req), (smb_fname), (access_mask), (share_access), (create_disposition), \ (create_options), (file_attributes), (oplock_request), (lease), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo), \ (in_context_blobs), (out_context_blobs)) -#define SMB_VFS_NEXT_CREATE_FILE(handle, req, dirfsp, smb_fname, access_mask, share_access, create_disposition, \ +#define SMB_VFS_NEXT_CREATE_FILE(handle, req, smb_fname, access_mask, share_access, create_disposition, \ create_options, file_attributes, oplock_request, lease, allocation_size, private_flags, sd, ea_list, result, pinfo, in_context_blobs, out_context_blobs) \ - smb_vfs_call_create_file((handle)->next, (req), (dirfsp), (smb_fname), (access_mask), (share_access), (create_disposition), \ + smb_vfs_call_create_file((handle)->next, (req), (smb_fname), (access_mask), (share_access), (create_disposition), \ (create_options), (file_attributes), (oplock_request), (lease), (allocation_size), (private_flags), (sd), (ea_list), (result), (pinfo), \ (in_context_blobs), (out_context_blobs)) diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c index 42b2e808d66..d701465e3d1 100644 --- a/source3/lib/adouble.c +++ b/source3/lib/adouble.c @@ -1109,7 +1109,6 @@ static bool ad_convert_xattr(vfs_handle_struct *handle, status = SMB_VFS_CREATE_FILE( handle->conn, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ stream_name, /* fname */ FILE_GENERIC_WRITE, /* access_mask */ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */ @@ -1239,7 +1238,6 @@ static bool ad_convert_finderinfo(vfs_handle_struct *handle, status = SMB_VFS_CREATE_FILE( handle->conn, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ stream_name, /* fname */ FILE_GENERIC_WRITE, /* access_mask */ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */ @@ -1470,7 +1468,6 @@ static bool ad_unconvert_open_ad(TALLOC_CTX *mem_ctx, status = SMB_VFS_CREATE_FILE( handle->conn, NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ adpath, FILE_READ_DATA|FILE_WRITE_DATA, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, @@ -1522,7 +1519,6 @@ static bool ad_unconvert_get_streams(struct vfs_handle_struct *handle, status = SMB_VFS_CREATE_FILE( handle->conn, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ smb_fname, /* fname */ FILE_READ_ATTRIBUTES, /* access_mask */ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */ @@ -1622,7 +1618,6 @@ static bool ad_collect_one_stream(struct vfs_handle_struct *handle, status = SMB_VFS_CREATE_FILE( handle->conn, NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ sname, FILE_READ_DATA|DELETE_ACCESS, FILE_SHARE_READ, @@ -2084,7 +2079,6 @@ static int ad_open_rsrc(vfs_handle_struct *handle, status = SMB_VFS_CREATE_FILE( handle->conn, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ adp_smb_fname, access_mask, share_access, diff --git a/source3/lib/filename_util.c b/source3/lib/filename_util.c index 84a248eb766..fb79dab09bd 100644 --- a/source3/lib/filename_util.c +++ b/source3/lib/filename_util.c @@ -187,26 +187,6 @@ const char *fsp_str_dbg(const struct files_struct *fsp) return ""; } - if (fsp->dirfsp == NULL || fsp->dirfsp == fsp->conn->cwd_fsp) { - return name; - } - - if (ISDOT(fsp->dirfsp->fsp_name->base_name)) { - return name; - } - - name = smb_fname_str_dbg(fsp->fsp_name); - if (name == NULL) { - return ""; - } - - name = talloc_asprintf(talloc_tos(), - "%s/%s", - fsp->dirfsp->fsp_name->base_name, - name); - if (name == NULL) { - return ""; - } return name; } diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 30f568c5e80..49e92ffea55 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -710,7 +710,6 @@ out: } static NTSTATUS vfswrap_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -728,7 +727,7 @@ static NTSTATUS vfswrap_create_file(vfs_handle_struct *handle, const struct smb2_create_blobs *in_context_blobs, struct smb2_create_blobs *out_context_blobs) { - return create_file_default(handle->conn, req, dirfsp, smb_fname, + return create_file_default(handle->conn, req, smb_fname, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, lease, @@ -3556,7 +3555,11 @@ static ssize_t vfswrap_getxattrat_recv(struct tevent_req *req, return xattr_size; } -static ssize_t vfswrap_fgetxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, const char *name, void *value, size_t size) +static ssize_t vfswrap_fgetxattr(struct vfs_handle_struct *handle, + struct files_struct *fsp, + const char *name, + void *value, + size_t size) { return fgetxattr(fsp->fh->fd, name, value, size); } diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index 51251b7b86b..8a843407596 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -898,7 +898,6 @@ static bool readdir_attr_meta_finderi_stream( status = SMB_VFS_CREATE_FILE( handle->conn, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ stream_name, /* fname */ FILE_READ_DATA, /* access_mask */ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */ @@ -1312,27 +1311,6 @@ static int fruit_connect(vfs_handle_struct *handle, return rc; } -static int fruit_fake_fd(void) -{ - int pipe_fds[2]; - int fd; - int ret; - - /* - * Return a valid fd, but ensure any attempt to use it returns - * an error (EPIPE). Once we get a write on the handle, we open - * the real fd. - */ - ret = pipe(pipe_fds); - if (ret != 0) { - return -1; - } - fd = pipe_fds[0]; - close(pipe_fds[1]); - - return fd; -} - static int fruit_open_meta_stream(vfs_handle_struct *handle, const struct files_struct *dirfsp, const struct smb_filename *smb_fname, @@ -1369,7 +1347,7 @@ static int fruit_open_meta_stream(vfs_handle_struct *handle, return -1; } - fd = fruit_fake_fd(); + fd = vfs_fake_fd(); if (fd == -1) { VFS_REMOVE_FSP_EXTENSION(handle, fsp); return -1; @@ -1409,7 +1387,7 @@ static int fruit_open_meta_netatalk(vfs_handle_struct *handle, return -1; } - fd = fruit_fake_fd(); + fd = vfs_fake_fd(); if (fd == -1) { return -1; } @@ -2489,7 +2467,7 @@ static ssize_t fruit_pwrite_meta_stream(vfs_handle_struct *handle, } fd = SMB_VFS_NEXT_OPENAT(handle, - fsp->dirfsp, + fsp->conn->cwd_fsp, fsp->fsp_name, fsp, fio->flags, @@ -3828,7 +3806,7 @@ static int fruit_ftruncate_rsrc_adouble(struct vfs_handle_struct *handle, ad_off = ad_getentryoff(ad, ADEID_RFORK); - rc = ftruncate(fsp->fh->fd, offset + ad_off); + rc = SMB_VFS_NEXT_FTRUNCATE(handle, fsp, offset + ad_off); if (rc != 0) { TALLOC_FREE(ad); return -1; @@ -3933,7 +3911,6 @@ static int fruit_ftruncate(struct vfs_handle_struct *handle, static NTSTATUS fruit_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -3988,7 +3965,7 @@ static NTSTATUS fruit_create_file(vfs_handle_struct *handle, } status = SMB_VFS_NEXT_CREATE_FILE( - handle, req, dirfsp, smb_fname, + handle, req, smb_fname, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, @@ -4753,7 +4730,6 @@ static bool fruit_get_bandsize(vfs_handle_struct *handle, status = SMB_VFS_NEXT_CREATE_FILE( handle, /* conn */ NULL, /* req */ - &handle->conn->cwd_fsp, /* dirfsp */ smb_fname, /* fname */ FILE_GENERIC_READ, /* access_mask */ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */ @@ -4776,7 +4752,9 @@ static bool fruit_get_bandsize(vfs_handle_struct *handle, goto out; } - file_data = talloc_array(talloc_tos(), uint8_t, plist_file_size); + file_data = talloc_zero_array(talloc_tos(), + uint8_t, + plist_file_size + 1); if (file_data == NULL) { ok = false; goto out; diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index 82f60f8a68b..5fceac6cf1f 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -1099,7 +1099,6 @@ static int smb_full_audit_openat(vfs_handle_struct *handle, static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -1146,7 +1145,6 @@ static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle, result = SMB_VFS_NEXT_CREATE_FILE( handle, /* handle */ req, /* req */ - dirfsp, smb_fname, /* fname */ access_mask, /* access_mask */ share_access, /* share_access */ diff --git a/source3/modules/vfs_media_harmony.c b/source3/modules/vfs_media_harmony.c index 202c711ff92..e3ce2804b5f 100644 --- a/source3/modules/vfs_media_harmony.c +++ b/source3/modules/vfs_media_harmony.c @@ -1106,7 +1106,6 @@ out: */ static NTSTATUS mh_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -1136,7 +1135,6 @@ static NTSTATUS mh_create_file(vfs_handle_struct *handle, status = SMB_VFS_NEXT_CREATE_FILE( handle, req, - dirfsp, smb_fname, access_mask, share_access, @@ -1175,7 +1173,6 @@ static NTSTATUS mh_create_file(vfs_handle_struct *handle, status = SMB_VFS_NEXT_CREATE_FILE( handle, req, - dirfsp, clientFname, access_mask, share_access, diff --git a/source3/modules/vfs_not_implemented.c b/source3/modules/vfs_not_implemented.c index 529ad579f49..9b5b0f6b4f6 100644 --- a/source3/modules/vfs_not_implemented.c +++ b/source3/modules/vfs_not_implemented.c @@ -201,7 +201,6 @@ int vfs_not_implemented_openat(vfs_handle_struct *handle, NTSTATUS vfs_not_implemented_create_file(struct vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c index 2e4105fec49..13ea46b0806 100644 --- a/source3/modules/vfs_streams_xattr.c +++ b/source3/modules/vfs_streams_xattr.c @@ -371,7 +371,6 @@ static int streams_xattr_openat(struct vfs_handle_struct *handle, struct stream_io *sio = NULL; struct ea_struct ea; char *xattr_name = NULL; - int pipe_fds[2]; int fakefd = -1; bool set_empty_xattr = false; int ret; @@ -456,18 +455,7 @@ static int streams_xattr_openat(struct vfs_handle_struct *handle, } } - /* - * Return a valid fd, but ensure any attempt to use it returns an error - * (EPIPE). - */ - ret = pipe(pipe_fds); - if (ret != 0) { - goto fail; - } - - close(pipe_fds[1]); - pipe_fds[1] = -1; - fakefd = pipe_fds[0]; + fakefd = vfs_fake_fd(); sio = VFS_ADD_FSP_EXTENSION(handle, fsp, struct stream_io, NULL); if (sio == NULL) { diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index f70ff73fec1..c6b0130bb93 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -614,7 +614,6 @@ static int smb_time_audit_openat(vfs_handle_struct *handle, static NTSTATUS smb_time_audit_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *fname, uint32_t access_mask, uint32_t share_access, @@ -640,7 +639,6 @@ static NTSTATUS smb_time_audit_create_file(vfs_handle_struct *handle, result = SMB_VFS_NEXT_CREATE_FILE( handle, /* handle */ req, /* req */ - dirfsp, /* dirfsp */ fname, /* fname */ access_mask, /* access_mask */ share_access, /* share_access */ diff --git a/source3/modules/vfs_unityed_media.c b/source3/modules/vfs_unityed_media.c index c42acaef3fe..ca20dc6baeb 100644 --- a/source3/modules/vfs_unityed_media.c +++ b/source3/modules/vfs_unityed_media.c @@ -838,7 +838,6 @@ err: static NTSTATUS um_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -866,7 +865,6 @@ static NTSTATUS um_create_file(vfs_handle_struct *handle, return SMB_VFS_NEXT_CREATE_FILE( handle, req, - dirfsp, smb_fname, access_mask, share_access, @@ -901,7 +899,6 @@ static NTSTATUS um_create_file(vfs_handle_struct *handle, status = SMB_VFS_NEXT_CREATE_FILE( handle, req, - dirfsp, client_fname, access_mask, share_access, diff --git a/source3/modules/vfs_worm.c b/source3/modules/vfs_worm.c index 85232bd101e..3ae1f9f39e6 100644 --- a/source3/modules/vfs_worm.c +++ b/source3/modules/vfs_worm.c @@ -24,7 +24,6 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle, struct smb_request *req, - struct files_struct **dirfsp, struct smb_filename *smb_fname, uint32_t access_mask, uint32_t share_access, @@ -63,7 +62,7 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle, } status = SMB_VFS_NEXT_CREATE_FILE( - handle, req, dirfsp, smb_fname, access_mask, + handle, req, smb_fname, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, lease, allocation_size, private_flags, sd, ea_list, result, pinfo, diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index e57ff3404de..fc4e552e213 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -844,7 +844,6 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr -- Samba Shared Repository