]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
pstore: switch to locked_recursive_removal()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Mar 2025 04:34:08 +0000 (00:34 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 3 Jul 2025 02:36:51 +0000 (22:36 -0400)
rather than playing with manual d_invalidate()

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/pstore/inode.c

index bb3b769edc7151a40052fd8669a563ea408d1be9..1a2e1185426ca1ecb68d86fb948767a7fd999b58 100644 (file)
@@ -300,7 +300,7 @@ static struct dentry *psinfo_lock_root(void)
                return NULL;
 
        root = pstore_sb->s_root;
-       inode_lock(d_inode(root));
+       inode_lock_nested(d_inode(root), I_MUTEX_PARENT);
 
        return root;
 }
@@ -318,8 +318,7 @@ int pstore_put_backend_records(struct pstore_info *psi)
                list_for_each_entry_safe(pos, tmp, &records_list, list) {
                        if (pos->record->psi == psi) {
                                list_del_init(&pos->list);
-                               d_invalidate(pos->dentry);
-                               simple_unlink(d_inode(root), pos->dentry);
+                               locked_recursive_removal(pos->dentry, NULL);
                                pos->dentry = NULL;
                        }
                }