From: Ralph Boehme Date: Thu, 2 Apr 2020 13:39:32 +0000 (+0200) Subject: smbd: move files_struct.write_time_forced to a bitfield X-Git-Tag: ldb-2.2.0~995 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d70e92a917f738c9924bdbb0f51a24323a21494;p=thirdparty%2Fsamba.git smbd: move files_struct.write_time_forced 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 502218096a9..23dbc7d2289 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -361,11 +361,11 @@ typedef struct files_struct { bool kernel_share_modes_taken : 1; bool update_write_time_triggered : 1; bool update_write_time_on_close : 1; + bool write_time_forced : 1; } fsp_flags; struct tevent_timer *update_write_time_event; struct timespec close_write_time; - bool write_time_forced; int oplock_type; diff --git a/source3/smbd/close.c b/source3/smbd/close.c index 2f092b56ed0..9a29bec4e7c 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -313,7 +313,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp, remove_oplock(fsp); } - if (fsp->write_time_forced) { + if (fsp->fsp_flags.write_time_forced) { struct timespec ts; DEBUG(10,("close_remove_share_mode: write time forced " @@ -555,7 +555,7 @@ void set_close_write_time(struct files_struct *fsp, struct timespec ts) if (is_omit_timespec(&ts)) { return; } - fsp->write_time_forced = false; + fsp->fsp_flags.write_time_forced = false; fsp->fsp_flags.update_write_time_on_close = true; fsp->close_write_time = ts; } diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index 322bf4476d6..148de405462 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -1292,7 +1292,7 @@ bool set_sticky_write_time_fsp(struct files_struct *fsp, struct timespec mtime) return true; } - fsp->write_time_forced = true; + fsp->fsp_flags.write_time_forced = true; TALLOC_FREE(fsp->update_write_time_event); return set_sticky_write_time_path(fsp->file_id, mtime); diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index 3593f5e7ede..1d482b377fd 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -105,7 +105,7 @@ NTSTATUS vfs_default_durable_cookie(struct files_struct *fsp, fsp->fsp_flags.update_write_time_triggered; cookie.update_write_time_on_close = fsp->fsp_flags.update_write_time_on_close; - cookie.write_time_forced = fsp->write_time_forced; + cookie.write_time_forced = fsp->fsp_flags.write_time_forced; cookie.close_write_time = full_timespec_to_nt_time( &fsp->close_write_time); @@ -210,7 +210,7 @@ NTSTATUS vfs_default_durable_disconnect(struct files_struct *fsp, init_smb_file_time(&ft); - if (fsp->write_time_forced) { + if (fsp->fsp_flags.write_time_forced) { ft.mtime = nt_time_to_full_timespec( lck->data->changed_write_time); } else if (fsp->fsp_flags.update_write_time_on_close) { @@ -258,7 +258,7 @@ NTSTATUS vfs_default_durable_disconnect(struct files_struct *fsp, fsp->fsp_flags.update_write_time_triggered; cookie.update_write_time_on_close = fsp->fsp_flags.update_write_time_on_close; - cookie.write_time_forced = fsp->write_time_forced; + cookie.write_time_forced = fsp->fsp_flags.write_time_forced; cookie.close_write_time = full_timespec_to_nt_time( &fsp->close_write_time); @@ -756,7 +756,7 @@ NTSTATUS vfs_default_durable_reconnect(struct connection_struct *conn, cookie.update_write_time_triggered; fsp->fsp_flags.update_write_time_on_close = cookie.update_write_time_on_close; - fsp->write_time_forced = cookie.write_time_forced; + fsp->fsp_flags.write_time_forced = cookie.write_time_forced; fsp->close_write_time = nt_time_to_full_timespec( cookie.close_write_time); diff --git a/source3/smbd/fileio.c b/source3/smbd/fileio.c index 42431f0ba07..f516b95d609 100644 --- a/source3/smbd/fileio.c +++ b/source3/smbd/fileio.c @@ -132,7 +132,7 @@ void trigger_write_time_update(struct files_struct *fsp) return; } - if (fsp->write_time_forced) { + if (fsp->fsp_flags.write_time_forced) { /* No point - "sticky" write times * in effect. */ @@ -179,7 +179,7 @@ void trigger_write_time_update_immediate(struct files_struct *fsp) return; } - if (fsp->write_time_forced) { + if (fsp->fsp_flags.write_time_forced) { /* * No point - "sticky" write times * in effect.