]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
audit_tree: Use mark flags to check whether mark is alive
authorJan Kara <jack@suse.cz>
Mon, 3 Apr 2017 14:47:58 +0000 (16:47 +0200)
committerJan Kara <jack@suse.cz>
Mon, 10 Apr 2017 15:36:32 +0000 (17:36 +0200)
Currently audit code uses checking of mark->inode to verify whether mark
is still alive. Switch that to checking mark flags as that is more
logical and current way will become unreliable in future.

Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
kernel/audit_tree.c

index 11c7ac44162465503f4ee7ecd2235bec71528c70..51451245936af51ca39e96818b2db12b0ae0e47f 100644 (file)
@@ -190,7 +190,7 @@ static void insert_hash(struct audit_chunk *chunk)
        unsigned long key = chunk_to_key(chunk);
        struct list_head *list;
 
-       if (!key)
+       if (!(chunk->mark.flags & FSNOTIFY_MARK_FLAG_ATTACHED))
                return;
        list = chunk_hash(key);
        list_add_rcu(&chunk->hash, list);
@@ -248,7 +248,7 @@ static void untag_chunk(struct node *p)
 
        mutex_lock(&entry->group->mark_mutex);
        spin_lock(&entry->lock);
-       if (chunk->dead || !entry->inode) {
+       if (chunk->dead || !(entry->flags & FSNOTIFY_MARK_FLAG_ATTACHED)) {
                spin_unlock(&entry->lock);
                mutex_unlock(&entry->group->mark_mutex);
                if (new)
@@ -408,7 +408,7 @@ static int tag_chunk(struct inode *inode, struct audit_tree *tree)
 
        mutex_lock(&old_entry->group->mark_mutex);
        spin_lock(&old_entry->lock);
-       if (!old_entry->inode) {
+       if (!(old_entry->flags & FSNOTIFY_MARK_FLAG_ATTACHED)) {
                /* old_entry is being shot, lets just lie */
                spin_unlock(&old_entry->lock);
                mutex_unlock(&old_entry->group->mark_mutex);