Revert "NEEDED??? s3:vfs: change update_write_time_triggered to update_write_time_at"
authorStefan Metzmacher <metze@samba.org>
Tue, 3 Sep 2013 07:06:10 +0000 (09:06 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 16 Jan 2018 06:47:04 +0000 (07:47 +0100)
This reverts commit a8916f7acd8e57c1e3d6815a498b32db47a166bb.

source3/include/vfs.h
source3/smbd/fileio.c

index 511aa22444fb262bf89dfd08ed3333bbd1efdd4e..bb4a135e41e2cda82588a7722df62e40e1a6a425 100644 (file)
@@ -314,9 +314,8 @@ typedef struct files_struct {
 
        bool kernel_share_modes_taken;
 
-
-       struct timeval update_write_time_at;
-       struct timed_event *update_write_time_event;
+       bool update_write_time_triggered;
+       struct tevent_timer *update_write_time_event;
        bool update_write_time_on_close;
        struct timespec close_write_time;
        bool write_time_forced;
index 8ef36a553fbd39ec9f0cb6bc8801c22f1956f29b..ec6333eaa10b0d336eeb947fb6404318bb7138d8 100644 (file)
@@ -210,7 +210,7 @@ void trigger_write_time_update(struct files_struct *fsp)
 
        fsp->update_write_time_on_close = true;
 
-       if (!timeval_is_zero(fsp->update_write_time_at)) {
+       if (fsp->update_write_time_triggered) {
                /*
                 * We only update the write time after 2 seconds
                 * on the first normal write. After that
@@ -218,10 +218,11 @@ void trigger_write_time_update(struct files_struct *fsp)
                 */
                return;
        }
+       fsp->update_write_time_triggered = true;
+
        delay = lp_parm_int(SNUM(fsp->conn),
                            "smbd", "writetimeupdatedelay",
                            WRITE_TIME_UPDATE_USEC_DELAY);
-       fsp->update_write_time_at = timeval_current_ofs_usec(delay),
 
        DEBUG(5, ("Update write time %d usec later on %s\n",
                  delay, fsp_str_dbg(fsp)));
@@ -229,7 +230,7 @@ void trigger_write_time_update(struct files_struct *fsp)
        /* trigger the update 2 seconds later */
        fsp->update_write_time_event =
                tevent_add_timer(fsp->conn->sconn->ev_ctx, NULL,
-                                fsp->update_write_time_at,
+                                timeval_current_ofs_usec(delay),
                                 update_write_time_handler, fsp);
 }
 
@@ -254,13 +255,13 @@ void trigger_write_time_update_immediate(struct files_struct *fsp)
        DEBUG(5, ("Update write time immediate on %s\n",
                  fsp_str_dbg(fsp)));
 
+       /* After an immediate update, reset the trigger. */
+       fsp->update_write_time_triggered = true;
+        fsp->update_write_time_on_close = false;
+
        ZERO_STRUCT(ft);
        ft.mtime = timespec_current();
 
-       /* After an immediate update, reset the trigger. */
-       fsp->update_write_time_at = convert_timespec_to_timeval(ft.mtime);
-       fsp->update_write_time_on_close = false;
-
        /* Update the time in the open file db. */
        (void)set_write_time(fsp->file_id, ft.mtime);