diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2023-09-29 18:31:41 +0200 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2023-10-18 23:43:22 +0200 |
commit | ead5a727739fa63b94ccd281d848a503032444ee (patch) | |
tree | 1432d9ad744dc5adf49c8d33bfcc24999740478a | |
parent | proc: use initializer for clearing some buffers (diff) | |
download | linux-ead5a727739fa63b94ccd281d848a503032444ee.tar.xz linux-ead5a727739fa63b94ccd281d848a503032444ee.zip |
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>
-rw-r--r-- | fs/proc/inode.c | 11 |
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); |