From d6d93329b4c2eff0c041bfd11a471c3512709594 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Sun, 15 Mar 2020 08:30:21 +0100 Subject: smbd: let delayed update handler also update on-disk timestamps Let delayed update handler also update on-disk timestamps by calling trigger_write_time_update_immediate(). trigger_write_time_update_immediate() sets fsp->update_write_time_on_close to false which prevents updating the write-time on close if there was ever only one write to the file. Besides resetting fsp->update_write_time_on_close and setting the on-disk timestamps trigger_write_time_update_immediate() takes the same steps as the removed code. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14320 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Thu Mar 19 03:05:40 UTC 2020 on sn-devel-184 (cherry picked from commit 81c1a14e3271aeed7ed4fe6311171b19ba963555) --- selftest/knownfail.d/samba3.smb2.timestamps | 1 - source3/smbd/fileio.c | 10 +--------- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 selftest/knownfail.d/samba3.smb2.timestamps diff --git a/selftest/knownfail.d/samba3.smb2.timestamps b/selftest/knownfail.d/samba3.smb2.timestamps deleted file mode 100644 index dd4aeb59e2e..00000000000 --- a/selftest/knownfail.d/samba3.smb2.timestamps +++ /dev/null @@ -1 +0,0 @@ -^samba3.smb2.timestamps.delayed-1write\(.*\)$ diff --git a/source3/smbd/fileio.c b/source3/smbd/fileio.c index aba7f878b17..31d5b7510b7 100644 --- a/source3/smbd/fileio.c +++ b/source3/smbd/fileio.c @@ -104,15 +104,7 @@ void fsp_flush_write_time_update(struct files_struct *fsp) DEBUG(5, ("Update write time on %s\n", fsp_str_dbg(fsp))); - /* change the write time in the open file db. */ - (void)set_write_time(fsp->file_id, timespec_current()); - - /* And notify. */ - notify_fname(fsp->conn, NOTIFY_ACTION_MODIFIED, - FILE_NOTIFY_CHANGE_LAST_WRITE, fsp->fsp_name->base_name); - - /* Remove the timed event handler. */ - TALLOC_FREE(fsp->update_write_time_event); + trigger_write_time_update_immediate(fsp); } static void update_write_time_handler(struct tevent_context *ctx, -- cgit v1.2.1