selinux; don't open-code a loop in sb_finish_set_opts()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Dec 2018 20:34:12 +0000 (15:34 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 21 Dec 2018 16:46:57 +0000 (11:46 -0500)
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
security/selinux/hooks.c

index 59b164d..630fe88 100644 (file)
@@ -571,10 +571,9 @@ static int sb_finish_set_opts(struct super_block *sb)
           during get_sb by a pseudo filesystem that directly
           populates itself. */
        spin_lock(&sbsec->isec_lock);
-next_inode:
-       if (!list_empty(&sbsec->isec_head)) {
+       while (!list_empty(&sbsec->isec_head)) {
                struct inode_security_struct *isec =
-                               list_entry(sbsec->isec_head.next,
+                               list_first_entry(&sbsec->isec_head,
                                           struct inode_security_struct, list);
                struct inode *inode = isec->inode;
                list_del_init(&isec->list);
@@ -586,7 +585,6 @@ next_inode:
                        iput(inode);
                }
                spin_lock(&sbsec->isec_lock);
-               goto next_inode;
        }
        spin_unlock(&sbsec->isec_lock);
 out: