From 7c137c38c4abd34e43daaaa10708edb17de393e9 Mon Sep 17 00:00:00 2001 From: "Brian L. Troutwine" Date: Tue, 29 Oct 2024 13:05:02 -0700 Subject: [PATCH] Uniformly advance time in logrotate_fs For the sake of consitency, always update time when the state lock is taken. Signed-off-by: Brian L. Troutwine --- lading/src/generator/file_gen/logrotate_fs.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lading/src/generator/file_gen/logrotate_fs.rs b/lading/src/generator/file_gen/logrotate_fs.rs index 6ee7104429..48308e4b55 100644 --- a/lading/src/generator/file_gen/logrotate_fs.rs +++ b/lading/src/generator/file_gen/logrotate_fs.rs @@ -243,6 +243,7 @@ impl Filesystem for LogrotateFS { fn lookup(&mut self, _: &Request, parent: u64, name: &OsStr, reply: ReplyEntry) { let tick = self.get_current_tick(); let mut state = self.state.lock().expect("lock poisoned"); + state.advance_time(tick); let name_str = name.to_str().unwrap_or(""); if let Some(ino) = state.lookup(tick, parent as usize, name_str) { @@ -262,6 +263,7 @@ impl Filesystem for LogrotateFS { fn getattr(&mut self, _: &Request, ino: u64, reply: ReplyAttr) { let tick = self.get_current_tick(); let mut state = self.state.lock().expect("lock poisoned"); + state.advance_time(tick); if let Some(attr) = getattr_helper(&mut state, self.start_time_system, tick, ino as usize) { reply.attr(&TTL, &attr); @@ -284,6 +286,7 @@ impl Filesystem for LogrotateFS { ) { let tick = self.get_current_tick(); let mut state = self.state.lock().expect("lock poisoned"); + state.advance_time(tick); // Get the FileHandle from fh let file_handle = { @@ -319,6 +322,7 @@ impl Filesystem for LogrotateFS { ) { let tick = self.get_current_tick(); let mut state = self.state.lock().expect("lock poisoned"); + state.advance_time(tick); // Remove the FileHandle from the mapping let file_handle = { @@ -399,6 +403,7 @@ impl Filesystem for LogrotateFS { fn open(&mut self, _req: &Request, ino: u64, flags: i32, reply: fuser::ReplyOpen) { let tick = self.get_current_tick(); let mut state = self.state.lock().expect("lock poisoned"); + state.advance_time(tick); if let Some(file_handle) = state.open_file(tick, ino as usize) { let fh = file_handle.id();