[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Tue Nov 14 00:11:01 UTC 2023
The branch, master has been updated
via b649007a532 smbd: remove now unneccessary wrapper vfs_fget_dos_attributes()
via 7dca8a96867 smbd: Alternative fix for smb2.stream.attributes2 test
from 95443320847 smbd: fix has_other_nonposix_opens_fn()
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit b649007a532812ffb14a8fd7cbf204acb388e6d0
Author: Ralph Boehme <slow at samba.org>
Date: Fri Nov 10 10:01:46 2023 +0100
smbd: remove now unneccessary wrapper vfs_fget_dos_attributes()
Signed-off-by: Ralph Boehme <slow at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Tue Nov 14 00:10:19 UTC 2023 on atb-devel-224
commit 7dca8a96867f67441eebdf4824b406177ebb8806
Author: Volker Lendecke <vl at samba.org>
Date: Fri Nov 10 08:39:15 2023 +0100
smbd: Alternative fix for smb2.stream.attributes2 test
It confused me that a function that supposedly just retrieves dos
attributes also updates something.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/include/proto.h | 3 ---
source3/smbd/dosmode.c | 8 +++++++-
source3/smbd/open.c | 5 ++++-
source3/smbd/vfs.c | 39 ---------------------------------------
4 files changed, 11 insertions(+), 44 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/include/proto.h b/source3/include/proto.h
index bbb089a5908..06ad7fb508a 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -82,9 +82,6 @@ NTSTATUS vfs_at_fspcwd(TALLOC_CTX *mem_ctx,
struct connection_struct *conn,
struct files_struct **_fsp);
-NTSTATUS vfs_fget_dos_attributes(struct files_struct *fsp,
- uint32_t *dosmode);
-
#include "source3/lib/interface.h"
/* The following definitions come from lib/ldap_debug_handler.c */
diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c
index c0fc468cdfb..229a85a9171 100644
--- a/source3/smbd/dosmode.c
+++ b/source3/smbd/dosmode.c
@@ -715,7 +715,9 @@ uint32_t fdos_mode(struct files_struct *fsp)
}
/* Get the DOS attributes via the VFS if we can */
- status = vfs_fget_dos_attributes(fsp, &result);
+ status = SMB_VFS_FGET_DOS_ATTRIBUTES(fsp->conn,
+ metadata_fsp(fsp),
+ &result);
if (!NT_STATUS_IS_OK(status)) {
/*
* Only fall back to using UNIX modes if we get NOT_IMPLEMENTED.
@@ -1292,6 +1294,10 @@ struct timespec get_create_timespec(connection_struct *conn,
struct files_struct *fsp,
const struct smb_filename *smb_fname)
{
+ if (fsp != NULL) {
+ struct files_struct *meta_fsp = metadata_fsp(fsp);
+ return meta_fsp->fsp_name->st.st_ex_btime;
+ }
return smb_fname->st.st_ex_btime;
}
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 87a252a3d1b..cb1e2adbf1e 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -3906,7 +3906,10 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
*/
uint32_t attr = 0;
- status = vfs_fget_dos_attributes(smb_fname->fsp, &attr);
+ status = SMB_VFS_FGET_DOS_ATTRIBUTES(
+ conn,
+ metadata_fsp(smb_fname->fsp),
+ &attr);
if (NT_STATUS_IS_OK(status)) {
existing_dos_attributes = attr;
}
diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
index a34b9083352..3a1d18d6676 100644
--- a/source3/smbd/vfs.c
+++ b/source3/smbd/vfs.c
@@ -1297,45 +1297,6 @@ NTSTATUS vfs_at_fspcwd(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
-NTSTATUS vfs_fget_dos_attributes(struct files_struct *fsp,
- uint32_t *dosmode)
-{
- NTSTATUS status;
-
- /*
- * First make sure to pass the base_fsp to the VFS
- */
- status = SMB_VFS_FGET_DOS_ATTRIBUTES(
- fsp->conn, metadata_fsp(fsp), dosmode);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- /*
- * If this isn't a stream fsp we're done, ...
- */
- if (!fsp_is_alternate_stream(fsp)) {
- return NT_STATUS_OK;
- }
-
- /*
- * ...otherwise the VFS might have updated the btime, propagate the
- * btime from the base_fsp to the stream fsp.
- */
-
- if (fsp->base_fsp->fsp_name->st.st_ex_iflags & ST_EX_IFLAG_CALCULATED_BTIME) {
- /*
- * Not a value from backend storage, ignore it
- */
- return NT_STATUS_OK;
- }
-
- update_stat_ex_create_time(&fsp->fsp_name->st,
- fsp->base_fsp->fsp_name->st.st_ex_btime);
-
- return NT_STATUS_OK;
-}
-
static struct smb_vfs_deny_state *smb_vfs_deny_global;
void smb_vfs_assert_allowed(void)
--
Samba Shared Repository
More information about the samba-cvs
mailing list