bool touch_mtime)
{
struct smb_filename *smb_fname_tmp = NULL;
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
int ret, err;
NTSTATUS status;
- init_smb_file_time(&ft);
-
status = synthetic_pathref(talloc_tos(),
handle->conn->cwd_fsp,
smb_fname->base_name,
*/
static NTSTATUS update_write_time_on_close(struct files_struct *fsp)
{
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
NTSTATUS status;
- init_smb_file_time(&ft);
-
if (is_omit_timespec(&fsp->close_write_time)) {
return NT_STATUS_OK;
}
bool update_mtime,
bool update_ctime)
{
- struct smb_file_time ft;
-
- init_smb_file_time(&ft);
+ struct smb_file_time ft = smb_file_time_omit();
if (fsp->fsp_flags.posix_open) {
return;
if (fsp->fsp_flags.write_time_forced &&
modified_state->valid)
{
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
- init_smb_file_time(&ft);
ft.mtime = modified_state->st.st_ex_mtime;
/*
TALLOC_CTX *mem_ctx,
unsigned int *num_streams,
struct stream_struct **streams);
-void init_smb_file_time(struct smb_file_time *ft);
+struct smb_file_time smb_file_time_omit(void);
int vfs_fake_fd(void);
int vfs_fake_fd_close(int fd);
uint32_t vfs_get_fs_capabilities(struct connection_struct *conn,
void reply_setatr(struct smb_request *req)
{
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
connection_struct *conn = req->conn;
struct smb_filename *smb_fname = NULL;
struct files_struct *dirfsp = NULL;
TALLOC_CTX *ctx = talloc_tos();
START_PROFILE(SMBsetatr);
- init_smb_file_time(&ft);
if (req->wct < 2) {
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
struct smb_filename *smb_fname = NULL;
char *fname = NULL;
uint32_t fattr = 0;
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
struct files_struct *dirfsp = NULL;
files_struct *fsp;
int oplock_request = 0;
TALLOC_CTX *ctx = talloc_tos();
START_PROFILE(SMBcreate);
- init_smb_file_time(&ft);
if (req->wct < 3) {
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
void reply_setattrE(struct smb_request *req)
{
connection_struct *conn = req->conn;
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
files_struct *fsp;
NTSTATUS status;
START_PROFILE(SMBsetattrE);
- init_smb_file_time(&ft);
if (req->wct < 7) {
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
files_struct *fsp,
struct smb_filename *smb_fname)
{
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
uint32_t raw_unixmode;
mode_t unixmode;
off_t size = 0;
return NT_STATUS_DOS(ERRSRV, ERRaccess);
}
- init_smb_file_time(&ft);
-
if (total_data < 100) {
return NT_STATUS_INVALID_PARAMETER;
}
struct smb_filename *smb_fname)
{
/* Patch to do this correctly from Paul Eggert <eggert@twinsun.com>. */
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
uint32_t dosmode = 0;
NTSTATUS status = NT_STATUS_OK;
- init_smb_file_time(&ft);
-
if (total_data < 36) {
return NT_STATUS_INVALID_PARAMETER;
}
struct smb_filename *smb_fname)
{
NTSTATUS status;
- struct smb_file_time ft;
-
- init_smb_file_time(&ft);
+ struct smb_file_time ft = smb_file_time_omit();
if (total_data < 12) {
return NT_STATUS_INVALID_PARAMETER;
return NT_STATUS_OK;
}
-void init_smb_file_time(struct smb_file_time *ft)
+struct smb_file_time smb_file_time_omit(void)
{
struct timespec omit = make_omit_timespec();
- *ft = (struct smb_file_time) {
+ return (struct smb_file_time){
.atime = omit,
.ctime = omit,
.mtime = omit,
static NTSTATUS cmd_utime(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv)
{
- struct smb_file_time ft;
+ struct smb_file_time ft = smb_file_time_omit();
struct files_struct *dirfsp = NULL;
struct smb_filename *smb_fname = NULL;
NTSTATUS status;
return NT_STATUS_OK;
}
- init_smb_file_time(&ft);
-
ft.atime = time_t_to_full_timespec(atoi(argv[2]));
ft.mtime = time_t_to_full_timespec(atoi(argv[3]));