summaryrefslogtreecommitdiff
path: root/fs/proc/inode.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2023-09-29 19:31:41 +0300
committerAndrew Morton <akpm@linux-foundation.org>2023-10-19 00:43:22 +0300
commitead5a727739fa63b94ccd281d848a503032444ee (patch)
tree1432d9ad744dc5adf49c8d33bfcc24999740478a /fs/proc/inode.c
parent860a2e7fa4a186a78be904879f752858c96328ed (diff)
downloadlinux-ead5a727739fa63b94ccd281d848a503032444ee.tar.xz
proc: save LOC by using while loop
Use while loop instead of infinite loop with "break;". Also move some variable to the inner scope where they belong. Link: https://lkml.kernel.org/r/82c8f8e7-8ded-46ca-8857-e60b991d6205@p183 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'fs/proc/inode.c')
-rw-r--r--fs/proc/inode.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index 532dc9d240f7..5933c78af6de 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -110,18 +110,15 @@ void __init proc_init_kmemcache(void)
void proc_invalidate_siblings_dcache(struct hlist_head *inodes, spinlock_t *lock)
{
- struct inode *inode;
- struct proc_inode *ei;
struct hlist_node *node;
struct super_block *old_sb = NULL;
rcu_read_lock();
- for (;;) {
+ while ((node = hlist_first_rcu(inodes))) {
+ struct proc_inode *ei = hlist_entry(node, struct proc_inode, sibling_inodes);
struct super_block *sb;
- node = hlist_first_rcu(inodes);
- if (!node)
- break;
- ei = hlist_entry(node, struct proc_inode, sibling_inodes);
+ struct inode *inode;
+
spin_lock(lock);
hlist_del_init_rcu(&ei->sibling_inodes);
spin_unlock(lock);