]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: move files_struct.update_write_time_triggered to a bitfield
authorRalph Boehme <slow@samba.org>
Thu, 2 Apr 2020 13:31:10 +0000 (15:31 +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/durable.c
source3/smbd/fileio.c

index b05ff13504bd70c169698700e2fc2f6b1bfd2156..ea1d959d037168eca9f8038ee2f01058ab75fa1f 100644 (file)
@@ -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;
index 9a4ebfb12d289b26153794d00fbea15a3de4ff81..79cfbe29d290f9a14994e6c3fa8eb1784c9d2100 100644 (file)
@@ -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(
index 54f04404ca716b2499d6e85c84862a1750e7fa12..c8e31494b65fcb8b512cd0f5e6da86b2c3938460 100644 (file)
@@ -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();