smbd: move files_struct.write_time_forced to a bitfield
authorRalph Boehme <slow@samba.org>
Thu, 2 Apr 2020 13:39:32 +0000 (15:39 +0200)
committerJeremy Allison <jra@samba.org>
Fri, 3 Apr 2020 19:05:43 +0000 (19:05 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/include/vfs.h
source3/smbd/close.c
source3/smbd/dosmode.c
source3/smbd/durable.c
source3/smbd/fileio.c

index 502218096a913b351892241da6290ba37563e907..23dbc7d2289d20e3c5accfd7491e8a3507d151e6 100644 (file)
@@ -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;
 
index 2f092b56ed0123d984f5605d2fe766df3c61ea5a..9a29bec4e7cd91f194c66a39dc1cc921aa761738 100644 (file)
@@ -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;
 }
index 322bf4476d6b466495ccc65498485054183884a7..148de405462803751d9ecb05c90bfde122483d71 100644 (file)
@@ -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);
index 3593f5e7edef51afd2c5e01858443a70f93ae6bb..1d482b377fd9322f21db75eafaf532d8d8a9c7a9 100644 (file)
@@ -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);
 
index 42431f0ba07a6ccc4897bd1a1c566ebe6a29c045..f516b95d6091c88d976339a40ee68ee830542c4a 100644 (file)
@@ -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.