From 97cb1b6672b4e674902bcb27a67c1eccc3aad5dc Mon Sep 17 00:00:00 2001 From: Marcel Lauhoff Date: Tue, 2 Aug 2022 16:09:24 +0200 Subject: [PATCH] fscrypt: Update mount info before create context NewContextFrom{Mountpoint,Path} functions use cached `/proc/self/mountinfo` to find mounted file systems by device ID. Since we run fscrypt as a library in a long-lived process the cached information is likely to be stale. Stale entries may map device IDs to mount points of already destroyed RBDs and fail context creation. Updating the cache beforehand prevents this. Signed-off-by: Marcel Lauhoff --- internal/util/fscrypt/fscrypt.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/util/fscrypt/fscrypt.go b/internal/util/fscrypt/fscrypt.go index 6a3bf9c40..07bce6a41 100644 --- a/internal/util/fscrypt/fscrypt.go +++ b/internal/util/fscrypt/fscrypt.go @@ -333,6 +333,11 @@ func Unlock( return err } + err = fscryptfilesystem.UpdateMountInfo() + if err != nil { + return err + } + fscryptContext, err := fscryptactions.NewContextFromMountpoint(stagingTargetPath, nil) if err != nil { log.ErrorLog(ctx, "fscrypt: failed to create context from mountpoint %v: %w", stagingTargetPath, err)