From d197c403b2b71b6ab9b8cc9f3a171064b615018c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 27 May 2020 17:22:46 +0200 Subject: [PATCH] efi: explicitly update mtime of EFI variables when changing them --- src/basic/efivars.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/basic/efivars.c b/src/basic/efivars.c index 496b5d4d44..16982e4784 100644 --- a/src/basic/efivars.c +++ b/src/basic/efivars.c @@ -231,6 +231,14 @@ int efi_set_variable( if (r < 0) goto finish; + /* For some reason efivarfs doesn't update mtime automatically. Let's do it manually then. This is + * useful for processes that cache EFI variables to detect when changes occurred. */ + if (futimens(fd, (struct timespec[2]) { + { .tv_nsec = UTIME_NOW }, + { .tv_nsec = UTIME_NOW } + }) < 0) + log_debug_errno(errno, "Failed to update mtime/atime on %s, ignoring: %m", p); + r = 0; finish: