1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

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@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke 2023-11-10 08:39:15 +01:00 committed by Jeremy Allison
parent 9544332084
commit 7dca8a9686
2 changed files with 6 additions and 28 deletions

View File

@ -1292,6 +1292,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;
}

View File

@ -1303,37 +1303,11 @@ NTSTATUS vfs_fget_dos_attributes(struct files_struct *fsp,
NTSTATUS status;
/*
* First make sure to pass the base_fsp to the VFS
* 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;
return status;
}
static struct smb_vfs_deny_state *smb_vfs_deny_global;