From: Ralph Boehme Date: Thu, 2 Apr 2020 13:31:10 +0000 (+0200) Subject: smbd: move files_struct.update_write_time_triggered to a bitfield X-Git-Tag: ldb-2.2.0~997 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=adaca9597ce38292e5db0fd7522d3cb4ac7e9bbb;p=thirdparty%2Fsamba.git smbd: move files_struct.update_write_time_triggered to a bitfield Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/source3/include/vfs.h b/source3/include/vfs.h index b05ff13504b..ea1d959d037 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -359,9 +359,9 @@ typedef struct files_struct { uint32_t access_mask; /* NTCreateX access bits (FILE_READ_DATA etc.) */ struct { bool kernel_share_modes_taken : 1; + bool update_write_time_triggered : 1; } fsp_flags; - bool update_write_time_triggered; struct tevent_timer *update_write_time_event; bool update_write_time_on_close; struct timespec close_write_time; diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index 9a4ebfb12d2..79cfbe29d29 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -101,7 +101,8 @@ NTSTATUS vfs_default_durable_cookie(struct files_struct *fsp, cookie.base_name = fsp->fsp_name->base_name; cookie.initial_allocation_size = fsp->initial_allocation_size; cookie.position_information = fsp->fh->position_information; - cookie.update_write_time_triggered = fsp->update_write_time_triggered; + cookie.update_write_time_triggered = + fsp->fsp_flags.update_write_time_triggered; cookie.update_write_time_on_close = fsp->update_write_time_on_close; cookie.write_time_forced = fsp->write_time_forced; cookie.close_write_time = full_timespec_to_nt_time( @@ -252,7 +253,8 @@ NTSTATUS vfs_default_durable_disconnect(struct files_struct *fsp, cookie.base_name = fsp->fsp_name->base_name; cookie.initial_allocation_size = fsp->initial_allocation_size; cookie.position_information = fsp->fh->position_information; - cookie.update_write_time_triggered = fsp->update_write_time_triggered; + cookie.update_write_time_triggered = + fsp->fsp_flags.update_write_time_triggered; cookie.update_write_time_on_close = fsp->update_write_time_on_close; cookie.write_time_forced = fsp->write_time_forced; cookie.close_write_time = full_timespec_to_nt_time( @@ -748,7 +750,8 @@ NTSTATUS vfs_default_durable_reconnect(struct connection_struct *conn, fsp->initial_allocation_size = cookie.initial_allocation_size; fsp->fh->position_information = cookie.position_information; - fsp->update_write_time_triggered = cookie.update_write_time_triggered; + fsp->fsp_flags.update_write_time_triggered = + cookie.update_write_time_triggered; fsp->update_write_time_on_close = cookie.update_write_time_on_close; fsp->write_time_forced = cookie.write_time_forced; fsp->close_write_time = nt_time_to_full_timespec( diff --git a/source3/smbd/fileio.c b/source3/smbd/fileio.c index 54f04404ca7..c8e31494b65 100644 --- a/source3/smbd/fileio.c +++ b/source3/smbd/fileio.c @@ -144,7 +144,7 @@ void trigger_write_time_update(struct files_struct *fsp) fsp->update_write_time_on_close = true; - if (fsp->update_write_time_triggered) { + if (fsp->fsp_flags.update_write_time_triggered) { /* * We only update the write time after 2 seconds * on the first normal write. After that @@ -152,7 +152,7 @@ void trigger_write_time_update(struct files_struct *fsp) */ return; } - fsp->update_write_time_triggered = true; + fsp->fsp_flags.update_write_time_triggered = true; delay = lp_parm_int(SNUM(fsp->conn), "smbd", "writetimeupdatedelay", @@ -192,7 +192,7 @@ void trigger_write_time_update_immediate(struct files_struct *fsp) fsp_str_dbg(fsp))); /* After an immediate update, reset the trigger. */ - fsp->update_write_time_triggered = true; + fsp->fsp_flags.update_write_time_triggered = true; fsp->update_write_time_on_close = false; ft.mtime = timespec_current();