summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/local.h3
-rw-r--r--source3/smbd/fileio.c8
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);
}