summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2023-11-07 02:00:39 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2023-11-25 02:32:13 -0500
commitda549bdd15c295c24b2ee7ffe7ad0f3877fa8a87 (patch)
tree15dbab67479c82f6138f801dce00f04c357438a6 /arch/powerpc/platforms
parentb31559f8e471f402cd71117f35b9cde52d192138 (diff)
downloadlinux-stable-da549bdd15c295c24b2ee7ffe7ad0f3877fa8a87.tar.gz
linux-stable-da549bdd15c295c24b2ee7ffe7ad0f3877fa8a87.tar.bz2
linux-stable-da549bdd15c295c24b2ee7ffe7ad0f3877fa8a87.zip
dentry: switch the lists of children to hlist
Saves a pointer per struct dentry and actually makes the things less clumsy. Cleaned the d_walk() and dcache_readdir() a bit by use of hlist_for_... iterators. A couple of new helpers - d_first_child() and d_next_sibling(), to make the expressions less awful. Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index 10c1320adfd0..030de2b8c145 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -145,10 +145,11 @@ spufs_evict_inode(struct inode *inode)
static void spufs_prune_dir(struct dentry *dir)
{
- struct dentry *dentry, *tmp;
+ struct dentry *dentry;
+ struct hlist_node *n;
inode_lock(d_inode(dir));
- list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_child) {
+ hlist_for_each_entry_safe(dentry, n, &dir->d_children, d_sib) {
spin_lock(&dentry->d_lock);
if (simple_positive(dentry)) {
dget_dlock(dentry);