| From: Alexey Dobriyan <adobriyan@gmail.com> |
| Subject: proc: save LOC by using while loop |
| Date: Fri, 29 Sep 2023 19:31:41 +0300 |
| |
| 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> |
| --- |
| |
| fs/proc/inode.c | 11 ++++------- |
| 1 file changed, 4 insertions(+), 7 deletions(-) |
| |
| --- a/fs/proc/inode.c~proc-save-loc-by-using-while-loop |
| +++ a/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); |
| _ |