| From 94489e7ffbc3c5a60834832d4615e437820b72bf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 14 May 2024 08:48:58 -0600 |
| Subject: fix locking in efi_secret_unlink() |
| |
| From: Al Viro <viro@zeniv.linux.org.uk> |
| |
| [ Upstream commit 2c58d42de71f9c73e40afacc9d062892d2cc8862 ] |
| |
| We used to need securityfs_remove() to undo simple_pin_fs() done when |
| the file had been created and to drop the second extra reference |
| taken at the same time. Now that neither is needed (or done by |
| securityfs_remove()), we can simply call simple_unlink() and be done |
| with that - the broken games with locking had been there only for the |
| sake of securityfs_remove(). |
| |
| Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/virt/coco/efi_secret/efi_secret.c | 10 +--------- |
| 1 file changed, 1 insertion(+), 9 deletions(-) |
| |
| diff --git a/drivers/virt/coco/efi_secret/efi_secret.c b/drivers/virt/coco/efi_secret/efi_secret.c |
| index e700a5ef7043..d996feb0509a 100644 |
| --- a/drivers/virt/coco/efi_secret/efi_secret.c |
| +++ b/drivers/virt/coco/efi_secret/efi_secret.c |
| @@ -136,15 +136,7 @@ static int efi_secret_unlink(struct inode *dir, struct dentry *dentry) |
| if (s->fs_files[i] == dentry) |
| s->fs_files[i] = NULL; |
| |
| - /* |
| - * securityfs_remove tries to lock the directory's inode, but we reach |
| - * the unlink callback when it's already locked |
| - */ |
| - inode_unlock(dir); |
| - securityfs_remove(dentry); |
| - inode_lock(dir); |
| - |
| - return 0; |
| + return simple_unlink(inode, dentry); |
| } |
| |
| static const struct inode_operations efi_secret_dir_inode_operations = { |
| -- |
| 2.39.5 |
| |