summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2020-04-02 15:31:10 +0200
committerJeremy Allison <jra@samba.org>2020-04-03 19:05:43 +0000
commitadaca9597ce38292e5db0fd7522d3cb4ac7e9bbb (patch)
tree3e7932e7d245c138db58d9dfc2e541e86f6626a9
parent7c386c08dcc9e52b40f64034b6f726e477e04722 (diff)
downloadsamba-adaca9597ce38292e5db0fd7522d3cb4ac7e9bbb.tar.gz
smbd: move files_struct.update_write_time_triggered to a bitfield
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/include/vfs.h2
-rw-r--r--source3/smbd/durable.c9
-rw-r--r--source3/smbd/fileio.c6
3 files changed, 10 insertions, 7 deletions
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();