diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c index 3626816b174ad7c53b0b40d4efa990c044d85204..f57fc217c46b77940257f86b43cdfa52590d6cb0 100644 --- a/fs/efivarfs/super.c +++ b/fs/efivarfs/super.c @@ -47,6 +47,10 @@ static int efivarfs_d_compare(const struct dentry *dentry, { int guid = len - EFI_VARIABLE_GUID_LEN; + /* Parallel lookups may produce a temporary invalid filename */ + if (guid <= 0) + return 1; + if (name->len != len) return 1;