[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Fri May 14 20:53:02 UTC 2021
The branch, master has been updated
via 52744d35a37 nmbd: Reduce the wait interface loop sleep time
via 96f1af04ffc s3: VFS: Remove SMB_VFS_READDIR_ATTR(), no longer used
via 1fa6d75b434 s3: VFS: fruit: Remove SMB_VFS_READDIR_ATTR()
via cb563e63267 s3: VFS: catia: Remove SMB_VFS_READDIR_ATTR()
via 36a074bb1a2 s3: smbd: Skip calling SMB_VFS_FREADDIR_ATTR() for symlinks
via 289b9b1382c s3: smbd: Switch from SMB_VFS_READDIR_ATTR() to SMB_VFS_FREADDIR_ATTR()
via 45578328a6f s3: VFS: fruit: Implement SMB_VFS_FREADDIR_ATTR()
via 6df8709fc98 VFS: Add SMB_VFS_FREADDIR_ATTR()
from 9be3be8aca8 build: wscript. Fix the build on FreeBSD with the clang ld.lld-XX linker.
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 52744d35a37680c382800539a4c88d553496dbec
Author: Samuel Cabrero <scabrero at samba.org>
Date: Fri May 14 12:35:44 2021 +0200
nmbd: Reduce the wait interface loop sleep time
Under some circumstances the network-online.target can be reached
without an IPv4 address, for example when using systemd-networkd and
having systemd-networkd-wait-online.service disabled. This will trigger
a five seconds sleep which seems a bit excessive. It is specially
critical when winbind.service is enabled as it won't be started until
nmbd.service is running, delaying the systemd-logind.service five seconds.
Reduce the sleep time from 5 seconds to 250ms to exit the loop as soon
as possible.
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Fri May 14 20:52:47 UTC 2021 on sn-devel-184
commit 96f1af04ffce5e276443e390d5d6339dbf17a06d
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 13:36:31 2021 +0200
s3: VFS: Remove SMB_VFS_READDIR_ATTR(), no longer used
----------------
/ \
/ REST \
/ IN \
/ PEACE \
/ \
| |
| SMB_VFS_READDIR_ATTR |
| |
| |
| 13 May |
| 2021 |
| |
| |
*| * * * | *
_________)/\\_//(\/(/\)/\//\/\///\/|_)_______
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 1fa6d75b434f27962f76b339d6a4bb28756c836a
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 13:19:09 2021 +0200
s3: VFS: fruit: Remove SMB_VFS_READDIR_ATTR()
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit cb563e63267c239dde1900d6f3fc03005da04d36
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 13:18:23 2021 +0200
s3: VFS: catia: Remove SMB_VFS_READDIR_ATTR()
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 36a074bb1a23df2bc6e4d6c6b6cfd7023e6ea58d
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 17:01:47 2021 +0200
s3: smbd: Skip calling SMB_VFS_FREADDIR_ATTR() for symlinks
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
commit 289b9b1382cf62f5ce7d3ac384276da4ab12d733
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 13:17:19 2021 +0200
s3: smbd: Switch from SMB_VFS_READDIR_ATTR() to SMB_VFS_FREADDIR_ATTR()
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 45578328a6f25617ff183257d719dd9100590545
Author: Samuel Cabrero <scabrero at samba.org>
Date: Thu May 13 13:08:20 2021 +0200
s3: VFS: fruit: Implement SMB_VFS_FREADDIR_ATTR()
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6df8709fc9879049e95176f72193aa255e1b1452
Author: Samuel Cabrero <scabrero at samba.org>
Date: Mon May 10 12:38:58 2021 +0200
VFS: Add SMB_VFS_FREADDIR_ATTR()
Signed-off-by: Samuel Cabrero <scabrero at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
examples/VFS/skel_opaque.c | 10 +++++-----
examples/VFS/skel_transparent.c | 12 ++++++------
source3/include/vfs.h | 26 +++++++++++++------------
source3/include/vfs_macros.h | 8 ++++----
source3/modules/The_New_VFS.org | 4 +---
source3/modules/The_New_VFS.txt | 4 +---
source3/modules/vfs_catia.c | 33 --------------------------------
source3/modules/vfs_default.c | 10 +++++-----
source3/modules/vfs_fruit.c | 36 +++++++++++++++++++----------------
source3/modules/vfs_full_audit.c | 24 ++++++++++++-----------
source3/modules/vfs_not_implemented.c | 10 +++++-----
source3/modules/vfs_time_audit.c | 18 +++++++++---------
source3/nmbd/nmbd.c | 2 +-
source3/nmbd/nmbd.h | 2 ++
source3/nmbd/nmbd_subnetdb.c | 4 ++--
source3/smbd/trans2.c | 18 ++++++++++++++----
source3/smbd/vfs.c | 17 ++++++++++-------
17 files changed, 112 insertions(+), 126 deletions(-)
Changeset truncated at 500 lines:
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 256ab2a5e41..bb98c001d25 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -697,10 +697,10 @@ static NTSTATUS skel_fsctl(struct vfs_handle_struct *handle,
return NT_STATUS_NOT_IMPLEMENTED;
}
-static NTSTATUS skel_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+static NTSTATUS skel_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
return NT_STATUS_NOT_IMPLEMENTED;
}
@@ -1064,7 +1064,7 @@ static struct vfs_fn_pointers skel_opaque_fns = {
.strict_lock_check_fn = skel_strict_lock_check,
.translate_name_fn = skel_translate_name,
.fsctl_fn = skel_fsctl,
- .readdir_attr_fn = skel_readdir_attr,
+ .freaddir_attr_fn = skel_freaddir_attr,
.audit_file_fn = skel_audit_file,
/* DOS attributes. */
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index dfb324d52a3..4811bad3b2c 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -917,12 +917,12 @@ static NTSTATUS skel_fsctl(struct vfs_handle_struct *handle,
in_len, _out_data, max_out_len, out_len);
}
-static NTSTATUS skel_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+static NTSTATUS skel_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
- return SMB_VFS_NEXT_READDIR_ATTR(handle, fname, mem_ctx, pattr_data);
+ return SMB_VFS_NEXT_FREADDIR_ATTR(handle, fsp, mem_ctx, pattr_data);
}
struct skel_get_dos_attributes_state {
@@ -1369,7 +1369,7 @@ static struct vfs_fn_pointers skel_transparent_fns = {
.strict_lock_check_fn = skel_strict_lock_check,
.translate_name_fn = skel_translate_name,
.fsctl_fn = skel_fsctl,
- .readdir_attr_fn = skel_readdir_attr,
+ .freaddir_attr_fn = skel_freaddir_attr,
.audit_file_fn = skel_audit_file,
/* DOS attributes. */
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 1af6bdec1fe..1c076c2c8f6 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -350,6 +350,8 @@
* Version 45 - Add SMB_VFS_FNTIMES
* Version 45 - Remove SMB_VFS_NTIMES
* Version 45 - ADD SMB_VFS_FSTREAMINFO
+ * Version 45 - Add SMB_VFS_FREADDIR_ATTR
+ * Version 45 - Remove SMB_VFS_READDIR_ATTR
*/
#define SMB_VFS_INTERFACE_VERSION 45
@@ -1269,10 +1271,10 @@ struct vfs_fn_pointers {
struct files_struct **fsp,
DATA_BLOB *new_cookie);
- NTSTATUS (*readdir_attr_fn)(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **attr_data);
+ NTSTATUS (*freaddir_attr_fn)(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **attr_data);
};
/*
@@ -1781,10 +1783,10 @@ NTSTATUS smb_vfs_call_durable_reconnect(struct vfs_handle_struct *handle,
TALLOC_CTX *mem_ctx,
struct files_struct **fsp,
DATA_BLOB *new_cookie);
-NTSTATUS smb_vfs_call_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **attr_data);
+NTSTATUS smb_vfs_call_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **attr_data);
NTSTATUS smb_register_vfs(int version, const char *name,
const struct vfs_fn_pointers *fns);
@@ -2080,10 +2082,10 @@ NTSTATUS vfs_not_implemented_fsctl(struct vfs_handle_struct *handle,
uint32_t in_len,
uint8_t **_out_data,
uint32_t max_out_len, uint32_t *out_len);
-NTSTATUS vfs_not_implemented_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data);
+NTSTATUS vfs_not_implemented_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *dirfsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data);
struct tevent_req *vfs_not_implemented_get_dos_attributes_send(
TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index 3769593c2e4..0f69dcc930f 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -587,9 +587,9 @@
(smb1req), (op), (old_cookie), \
(mem_ctx), (fsp), (new_cookie))
-#define SMB_VFS_READDIR_ATTR(conn, fname, mem_ctx, attr_data) \
- smb_vfs_call_readdir_attr((conn)->vfs_handles, (fname), (mem_ctx), (attr_data))
-#define SMB_VFS_NEXT_READDIR_ATTR(conn, fname, mem_ctx, attr_data) \
- smb_vfs_call_readdir_attr((handle)->next, (fname), (mem_ctx), (attr_data))
+#define SMB_VFS_FREADDIR_ATTR(fsp, mem_ctx, attr_data) \
+ smb_vfs_call_freaddir_attr((fsp)->conn->vfs_handles, (fsp), (mem_ctx), (attr_data))
+#define SMB_VFS_NEXT_FREADDIR_ATTR(handle, fsp, mem_ctx, attr_data) \
+ smb_vfs_call_freaddir_attr((handle)->next, (fsp), (mem_ctx), (attr_data))
#endif /* _VFS_MACROS_H */
diff --git a/source3/modules/The_New_VFS.org b/source3/modules/The_New_VFS.org
index b3437ecb7c2..f9d96995d4b 100644
--- a/source3/modules/The_New_VFS.org
+++ b/source3/modules/The_New_VFS.org
@@ -272,7 +272,7 @@ whenever VFS access is done in a piecemeal fashion.
| SMB_VFS_PWRITE_SEND() | [[fsp][fsp]] | - |
| SMB_VFS_READ_DFS_PATHAT() | [[Symlink][Symlink]] | Todo |
| SMB_VFS_READDIR() | [[fsp][fsp]] | - |
-| SMB_VFS_READDIR_ATTR() | [[Path][Path]] | Todo |
+| SMB_VFS_READDIR_ATTR() | [[Path][Path]] | - |
| SMB_VFS_READLINKAT() | [[Symlink][Symlink]] | - |
| SMB_VFS_REALPATH() | [[P2px][P2px]] | - |
| SMB_VFS_RECVFILE() | [[fsp][fsp]] | - |
@@ -309,7 +309,6 @@ whenever VFS access is done in a piecemeal fashion.
| VFS Function | Group | Status |
|---------------------------------+----------+--------|
| SMB_VFS_SYS_ACL_DELETE_DEF_FD() | [[xpathref][xpathref]] | Todo |
-| SMB_VFS_READDIR_ATTRAT() | [[Enum][Enum]] | Todo |
| SMB_VFS_FNTIMENS() | [[fsp][fsp]] | - |
|---------------------------------+----------+--------|
@@ -438,7 +437,6 @@ whenever VFS access is done in a piecemeal fashion.
*** AT VFS functions needed for directory enumeration <<Enum>>
- SMB_VFS_GET_DOS_ATTRIBUTES_SEND()
- SMB_VFS_GETXATTRAT_SEND()
- - SMB_VFS_READDIR_ATTRAT() (NEW)
*** Handle based VFS functions not allowed on O_PATH opened handles <<xpathref>>
- SMB_VFS_FGETXATTR()
- SMB_VFS_FLISTXATTR()
diff --git a/source3/modules/The_New_VFS.txt b/source3/modules/The_New_VFS.txt
index 7b97f8a0fce..003b740ebf0 100644
--- a/source3/modules/The_New_VFS.txt
+++ b/source3/modules/The_New_VFS.txt
@@ -340,7 +340,7 @@ Table of Contents
SMB_VFS_PWRITE_SEND() [fsp] -
SMB_VFS_READ_DFS_PATHAT() [Symlink] Todo
SMB_VFS_READDIR() [fsp] -
- SMB_VFS_READDIR_ATTR() [Path] Todo
+ SMB_VFS_READDIR_ATTR() [Path] -
SMB_VFS_READLINKAT() [Symlink] -
SMB_VFS_REALPATH() [P2px] -
SMB_VFS_RECVFILE() [fsp] -
@@ -399,7 +399,6 @@ Table of Contents
VFS Function Group Status
─────────────────────────────────────────────────────
SMB_VFS_SYS_ACL_DELETE_DEF_FD() [xpathref] Todo
- SMB_VFS_READDIR_ATTRAT() [Enum] Todo
SMB_VFS_FNTIMENS() [fsp] -
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -556,7 +555,6 @@ Table of Contents
• SMB_VFS_GET_DOS_ATTRIBUTES_SEND()
• SMB_VFS_GETXATTRAT_SEND()
- • SMB_VFS_READDIR_ATTRAT() (NEW)
2.2.7 Handle based VFS functions not allowed on O_PATH opened handles
diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c
index c87fdda2239..e6709c86ca9 100644
--- a/source3/modules/vfs_catia.c
+++ b/source3/modules/vfs_catia.c
@@ -2000,38 +2000,6 @@ static NTSTATUS catia_set_compression(vfs_handle_struct *handle,
return result;
}
-static NTSTATUS catia_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *smb_fname_in,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
-{
- struct smb_filename *smb_fname;
- char *fname = NULL;
- NTSTATUS status;
-
- status = catia_string_replace_allocate(handle->conn,
- smb_fname_in->base_name,
- &fname,
- vfs_translate_to_unix);
- if (!NT_STATUS_IS_OK(status)) {
- errno = map_errno_from_nt_status(status);
- return status;
- }
-
- smb_fname = synthetic_smb_fname(talloc_tos(),
- fname,
- NULL,
- &smb_fname_in->st,
- smb_fname_in->twrp,
- 0);
-
- status = SMB_VFS_NEXT_READDIR_ATTR(handle, smb_fname, mem_ctx, pattr_data);
-
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(fname);
- return status;
-}
-
static NTSTATUS catia_create_dfs_pathat(struct vfs_handle_struct *handle,
struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
@@ -2124,7 +2092,6 @@ static struct vfs_fn_pointers vfs_catia_fns = {
/* Directory operations */
.mkdirat_fn = catia_mkdirat,
- .readdir_attr_fn = catia_readdir_attr,
/* File operations */
.openat_fn = catia_openat,
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 27b38f50816..722a3424c31 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -631,10 +631,10 @@ static struct dirent *vfswrap_readdir(vfs_handle_struct *handle,
return result;
}
-static NTSTATUS vfswrap_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **attr_data)
+static NTSTATUS vfswrap_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **attr_data)
{
return NT_STATUS_NOT_SUPPORTED;
}
@@ -3768,7 +3768,7 @@ static struct vfs_fn_pointers vfs_default_fns = {
.fdopendir_fn = vfswrap_fdopendir,
.readdir_fn = vfswrap_readdir,
- .readdir_attr_fn = vfswrap_readdir_attr,
+ .freaddir_attr_fn = vfswrap_freaddir_attr,
.seekdir_fn = vfswrap_seekdir,
.telldir_fn = vfswrap_telldir,
.rewind_dir_fn = vfswrap_rewinddir,
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 856a7beb650..3855e961e18 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -4191,10 +4191,10 @@ fail:
return status;
}
-static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+static NTSTATUS fruit_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
struct fruit_config_data *config = NULL;
struct readdir_attr_data *attr_data;
@@ -4207,10 +4207,13 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
return NT_STATUS_UNSUCCESSFUL);
if (!global_fruit_config.nego_aapl) {
- return SMB_VFS_NEXT_READDIR_ATTR(handle, fname, mem_ctx, pattr_data);
+ return SMB_VFS_NEXT_FREADDIR_ATTR(handle,
+ fsp,
+ mem_ctx,
+ pattr_data);
}
- DEBUG(10, ("fruit_readdir_attr %s\n", fname->base_name));
+ DBG_DEBUG("Path [%s]\n", fsp_str_dbg(fsp));
if (config->wipe_intentionally_left_blank_rfork) {
conv_flags |= AD_CONV_WIPE_BLANK;
@@ -4220,9 +4223,9 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
}
ret = ad_convert(handle,
- fname,
- macos_string_replace_map,
- conv_flags);
+ fsp->fsp_name,
+ macos_string_replace_map,
+ conv_flags);
if (ret != 0) {
DBG_ERR("ad_convert() failed\n");
return NT_STATUS_UNSUCCESSFUL;
@@ -4230,7 +4233,7 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
*pattr_data = talloc_zero(mem_ctx, struct readdir_attr_data);
if (*pattr_data == NULL) {
- return NT_STATUS_UNSUCCESSFUL;
+ return NT_STATUS_NO_MEMORY;
}
attr_data = *pattr_data;
attr_data->type = RDATTR_AAPL;
@@ -4239,7 +4242,7 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
* Mac metadata: compressed FinderInfo, resource fork length
* and creation date
*/
- status = readdir_attr_macmeta(handle, fname, attr_data);
+ status = readdir_attr_macmeta(handle, fsp->fsp_name, attr_data);
if (!NT_STATUS_IS_OK(status)) {
/*
* Error handling is tricky: if we return failure from
@@ -4256,7 +4259,8 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
* UNIX mode
*/
if (config->unix_info_enabled) {
- attr_data->attr_data.aapl.unix_mode = fname->st.st_ex_mode;
+ attr_data->attr_data.aapl.unix_mode =
+ fsp->fsp_name->st.st_ex_mode;
}
/*
@@ -4268,7 +4272,7 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
status = smbd_calculate_access_mask(
handle->conn,
handle->conn->cwd_fsp,
- fname,
+ fsp->fsp_name,
false,
SEC_FLAG_MAXIMUM_ALLOWED,
&attr_data->attr_data.aapl.max_access);
@@ -4280,8 +4284,8 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle,
return NT_STATUS_OK;
fail:
- DEBUG(1, ("fruit_readdir_attr %s, error: %s\n",
- fname->base_name, nt_errstr(status)));
+ DBG_WARNING("Path [%s], error: %s\n", fsp_str_dbg(fsp),
+ nt_errstr(status));
TALLOC_FREE(*pattr_data);
return status;
}
@@ -5214,7 +5218,7 @@ static struct vfs_fn_pointers vfs_fruit_fns = {
.ftruncate_fn = fruit_ftruncate,
.fallocate_fn = fruit_fallocate,
.create_file_fn = fruit_create_file,
- .readdir_attr_fn = fruit_readdir_attr,
+ .freaddir_attr_fn = fruit_freaddir_attr,
.offload_read_send_fn = fruit_offload_read_send,
.offload_read_recv_fn = fruit_offload_read_recv,
.offload_write_send_fn = fruit_offload_write_send,
diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c
index f1ded4fff04..508ef491af3 100644
--- a/source3/modules/vfs_full_audit.c
+++ b/source3/modules/vfs_full_audit.c
@@ -225,7 +225,7 @@ typedef enum _vfs_op_type {
SMB_VFS_OP_DURABLE_DISCONNECT,
SMB_VFS_OP_DURABLE_RECONNECT,
- SMB_VFS_OP_READDIR_ATTR,
+ SMB_VFS_OP_FREADDIR_ATTR,
/* This should always be last enum value */
@@ -347,7 +347,7 @@ static struct {
{ SMB_VFS_OP_DURABLE_COOKIE, "durable_cookie" },
{ SMB_VFS_OP_DURABLE_DISCONNECT, "durable_disconnect" },
{ SMB_VFS_OP_DURABLE_RECONNECT, "durable_reconnect" },
- { SMB_VFS_OP_READDIR_ATTR, "readdir_attr" },
+ { SMB_VFS_OP_FREADDIR_ATTR, "freaddir_attr" },
{ SMB_VFS_OP_LAST, NULL }
};
@@ -2260,17 +2260,20 @@ static NTSTATUS smb_full_audit_set_compression(vfs_handle_struct *handle,
return result;
}
-static NTSTATUS smb_full_audit_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+static NTSTATUS smb_full_audit_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
NTSTATUS status;
- status = SMB_VFS_NEXT_READDIR_ATTR(handle, fname, mem_ctx, pattr_data);
+ status = SMB_VFS_NEXT_FREADDIR_ATTR(handle, fsp, mem_ctx, pattr_data);
- do_log(SMB_VFS_OP_READDIR_ATTR, NT_STATUS_IS_OK(status), handle, "%s",
- smb_fname_str_do_log(handle->conn, fname));
+ do_log(SMB_VFS_OP_FREADDIR_ATTR,
+ NT_STATUS_IS_OK(status),
+ handle,
+ "%s",
+ fsp_str_do_log(fsp));
return status;
}
@@ -3013,8 +3016,7 @@ static struct vfs_fn_pointers vfs_full_audit_fns = {
.durable_cookie_fn = smb_full_audit_durable_cookie,
.durable_disconnect_fn = smb_full_audit_durable_disconnect,
.durable_reconnect_fn = smb_full_audit_durable_reconnect,
- .readdir_attr_fn = smb_full_audit_readdir_attr
-
+ .freaddir_attr_fn = smb_full_audit_freaddir_attr,
};
static_decl_vfs;
diff --git a/source3/modules/vfs_not_implemented.c b/source3/modules/vfs_not_implemented.c
index c4722c3687d..b4139644fef 100644
--- a/source3/modules/vfs_not_implemented.c
+++ b/source3/modules/vfs_not_implemented.c
@@ -700,10 +700,10 @@ NTSTATUS vfs_not_implemented_fsctl(struct vfs_handle_struct *handle,
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS vfs_not_implemented_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+NTSTATUS vfs_not_implemented_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
return NT_STATUS_NOT_IMPLEMENTED;
}
@@ -1068,7 +1068,7 @@ static struct vfs_fn_pointers vfs_not_implemented_fns = {
.strict_lock_check_fn = vfs_not_implemented_strict_lock_check,
.translate_name_fn = vfs_not_implemented_translate_name,
.fsctl_fn = vfs_not_implemented_fsctl,
- .readdir_attr_fn = vfs_not_implemented_readdir_attr,
+ .freaddir_attr_fn = vfs_not_implemented_freaddir_attr,
.audit_file_fn = vfs_not_implemented_audit_file,
/* DOS attributes. */
diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c
index 7cd9bf0ae25..972fec54564 100644
--- a/source3/modules/vfs_time_audit.c
+++ b/source3/modules/vfs_time_audit.c
@@ -2194,22 +2194,22 @@ static NTSTATUS smb_time_audit_set_compression(vfs_handle_struct *handle,
return result;
}
-static NTSTATUS smb_time_audit_readdir_attr(struct vfs_handle_struct *handle,
- const struct smb_filename *fname,
- TALLOC_CTX *mem_ctx,
- struct readdir_attr_data **pattr_data)
+static NTSTATUS smb_time_audit_freaddir_attr(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ TALLOC_CTX *mem_ctx,
+ struct readdir_attr_data **pattr_data)
{
NTSTATUS status;
- struct timespec ts1,ts2;
+ struct timespec ts1, ts2;
double timediff;
clock_gettime_mono(&ts1);
- status = SMB_VFS_NEXT_READDIR_ATTR(handle, fname, mem_ctx, pattr_data);
+ status = SMB_VFS_NEXT_FREADDIR_ATTR(handle, fsp, mem_ctx, pattr_data);
clock_gettime_mono(&ts2);
- timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9;
+ timediff = nsec_time_diff(&ts2, &ts1) * 1.0e-9;
if (timediff > audit_timeout) {
- smb_time_audit_log_smb_fname("readdir_attr", timediff, fname);
+ smb_time_audit_log_fsp("freaddir_attr", timediff, fsp);
}
return status;
--
Samba Shared Repository
More information about the samba-cvs
mailing list