audit: rename struct node to struct audit_node to prevent future name collisions
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 3 Sep 2021 15:48:22 +0000 (15:48 +0000)
committerPaul Moore <paul@paul-moore.com>
Mon, 13 Sep 2021 20:17:30 +0000 (16:17 -0400)
Future work in the powerpc code results in a name collision with the
identified "node" as struct node defined in kernel/audit_tree.c
conflicts with struct node defined in include/linux/node.h (below).
This patch takes the proactive route and renames the audit code's
struct node to audit_node.

  CC      kernel/audit_tree.o
kernel/audit_tree.c:33:9: error: redefinition of 'struct node'
   33 |  struct node {
      |         ^~~~
In file included from ./include/linux/cpu.h:17,
                  from ./include/linux/static_call.h:102,
                  from ./arch/powerpc/include/asm/machdep.h:10,
                  from ./arch/powerpc/include/asm/archrandom.h:7,
                  from ./include/linux/random.h:121,
                  from ./include/linux/net.h:18,
                  from ./include/linux/skbuff.h:26,
                  from kernel/audit.h:11,
                  from kernel/audit_tree.c:2:
./include/linux/node.h:84:8: note: originally defined here
   84 | struct node {
      |        ^~~~
make[2]: *** [kernel/audit_tree.o] Error 1

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
[PM: rewrite subj/desc as the build failure is just a RFC patch]
Signed-off-by: Paul Moore <paul@paul-moore.com>
kernel/audit_tree.c

index 2cd7b56..6ea71fe 100644 (file)
@@ -30,7 +30,7 @@ struct audit_chunk {
        int count;
        atomic_long_t refs;
        struct rcu_head head;
-       struct node {
+       struct audit_node {
                struct list_head list;
                struct audit_tree *owner;
                unsigned index;         /* index; upper bit indicates 'will prune' */
@@ -269,7 +269,7 @@ bool audit_tree_match(struct audit_chunk *chunk, struct audit_tree *tree)
 
 /* tagging and untagging inodes with trees */
 
-static struct audit_chunk *find_chunk(struct node *p)
+static struct audit_chunk *find_chunk(struct audit_node *p)
 {
        int index = p->index & ~(1U<<31);
        p -= index;
@@ -322,7 +322,7 @@ static void replace_chunk(struct audit_chunk *new, struct audit_chunk *old)
        list_replace_rcu(&old->hash, &new->hash);
 }
 
-static void remove_chunk_node(struct audit_chunk *chunk, struct node *p)
+static void remove_chunk_node(struct audit_chunk *chunk, struct audit_node *p)
 {
        struct audit_tree *owner = p->owner;
 
@@ -459,7 +459,7 @@ static int tag_chunk(struct inode *inode, struct audit_tree *tree)
 {
        struct fsnotify_mark *mark;
        struct audit_chunk *chunk, *old;
-       struct node *p;
+       struct audit_node *p;
        int n;
 
        mutex_lock(&audit_tree_group->mark_mutex);
@@ -570,11 +570,11 @@ static void prune_tree_chunks(struct audit_tree *victim, bool tagged)
 {
        spin_lock(&hash_lock);
        while (!list_empty(&victim->chunks)) {
-               struct node *p;
+               struct audit_node *p;
                struct audit_chunk *chunk;
                struct fsnotify_mark *mark;
 
-               p = list_first_entry(&victim->chunks, struct node, list);
+               p = list_first_entry(&victim->chunks, struct audit_node, list);
                /* have we run out of marked? */
                if (tagged && !(p->index & (1U<<31)))
                        break;
@@ -616,7 +616,7 @@ static void trim_marked(struct audit_tree *tree)
        }
        /* reorder */
        for (p = tree->chunks.next; p != &tree->chunks; p = q) {
-               struct node *node = list_entry(p, struct node, list);
+               struct audit_node *node = list_entry(p, struct audit_node, list);
                q = p->next;
                if (node->index & (1U<<31)) {
                        list_del_init(p);
@@ -684,7 +684,7 @@ void audit_trim_trees(void)
                struct audit_tree *tree;
                struct path path;
                struct vfsmount *root_mnt;
-               struct node *node;
+               struct audit_node *node;
                int err;
 
                tree = container_of(cursor.next, struct audit_tree, list);
@@ -839,7 +839,7 @@ int audit_add_tree_rule(struct audit_krule *rule)
        drop_collected_mounts(mnt);
 
        if (!err) {
-               struct node *node;
+               struct audit_node *node;
                spin_lock(&hash_lock);
                list_for_each_entry(node, &tree->chunks, list)
                        node->index &= ~(1U<<31);
@@ -938,7 +938,7 @@ int audit_tag_tree(char *old, char *new)
                mutex_unlock(&audit_filter_mutex);
 
                if (!failed) {
-                       struct node *node;
+                       struct audit_node *node;
                        spin_lock(&hash_lock);
                        list_for_each_entry(node, &tree->chunks, list)
                                node->index &= ~(1U<<31);