backup: touch all chunks, even if they exist

We need to update the atime of chunk files if they already exist,
otherwise a concurrently running GC could sweep them away.

This is protected with ChunkStore.mutex, so the fstat/unlink does not
race with touching.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
Stefan Reiter 2020-09-07 17:30:36 +02:00 committed by Dietmar Maurer
parent a9767cf7de
commit 068e526862
1 changed files with 1 additions and 0 deletions

View File

@ -414,6 +414,7 @@ impl ChunkStore {
if let Ok(metadata) = std::fs::metadata(&chunk_path) { if let Ok(metadata) = std::fs::metadata(&chunk_path) {
if metadata.is_file() { if metadata.is_file() {
self.touch_chunk(digest)?;
return Ok((true, metadata.len())); return Ok((true, metadata.len()));
} else { } else {
bail!("Got unexpected file type on store '{}' for chunk {}", self.name, digest_str); bail!("Got unexpected file type on store '{}' for chunk {}", self.name, digest_str);