mirror of https://github.com/torvalds/linux.git
fix locking in efi_secret_unlink()
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>
This commit is contained in:
parent
e4de726502
commit
2c58d42de7
|
|
@ -136,15 +136,7 @@ static int efi_secret_unlink(struct inode *dir, struct dentry *dentry)
|
||||||
if (s->fs_files[i] == dentry)
|
if (s->fs_files[i] == dentry)
|
||||||
s->fs_files[i] = NULL;
|
s->fs_files[i] = NULL;
|
||||||
|
|
||||||
/*
|
return simple_unlink(inode, dentry);
|
||||||
* 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct inode_operations efi_secret_dir_inode_operations = {
|
static const struct inode_operations efi_secret_dir_inode_operations = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue