diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/local.h | 3 | ||||
-rw-r--r-- | source3/smbd/fileio.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/source3/include/local.h b/source3/include/local.h index 6d32f4fe6e..c125ded371 100644 --- a/source3/include/local.h +++ b/source3/include/local.h @@ -233,6 +233,9 @@ /* Number of microseconds to wait before a sharing violation. */ #define SHARING_VIOLATION_USEC_WAIT 950000 +/* Number of microseconds to wait before a updating the write time (2 secs). */ +#define WRITE_TIME_UPDATE_USEC_DELAY 2000000 + #define MAX_LDAP_REPLICATION_SLEEP_TIME 5000 /* In milliseconds. */ /* tdb hash size for the open database. */ diff --git a/source3/smbd/fileio.c b/source3/smbd/fileio.c index 93a303f6c8..64cea7f7ce 100644 --- a/source3/smbd/fileio.c +++ b/source3/smbd/fileio.c @@ -188,6 +188,8 @@ static void update_write_time_handler(struct event_context *ctx, void trigger_write_time_update(struct files_struct *fsp) { + int delay; + if (fsp->write_time_forced) { return; } @@ -197,11 +199,15 @@ void trigger_write_time_update(struct files_struct *fsp) } fsp->update_write_time_triggered = true; + delay = lp_parm_int(SNUM(fsp->conn), + "smbd", "writetimeupdatedelay", + WRITE_TIME_UPDATE_USEC_DELAY); + /* trigger the update 2 seconds later */ fsp->update_write_time_on_close = true; fsp->update_write_time_event = event_add_timed(smbd_event_context(), NULL, - timeval_current_ofs(2, 0), + timeval_current_ofs(0, delay), "update_write_time_handler", update_write_time_handler, fsp); } |