Re: audit_tree: sleep inside atomic

From: Jiri Slaby
Date: Fri Sep 03 2010 - 09:52:39 EST


Ideas, comments?

On 06/21/2010 05:15 PM, Jiri Slaby wrote:
> Hi,
>
> stanse found a sleep inside atomic added by the following commit:
> commit fb36de479642bc9bdd3af251ae48b882d8a1ad5d
> Author: Eric Paris <eparis@xxxxxxxxxx>
> Date: Thu Dec 17 20:12:05 2009 -0500
>
> audit: reimplement audit_trees using fsnotify rather than inotify
>
> Simply switch audit_trees from using inotify to using fsnotify for it's
> inode pinning and disappearing act information.
>
> Signed-off-by: Eric Paris <eparis@xxxxxxxxxx>
>
>
> In untag_chunk, there is
> spin_lock(&entry->lock);
> ...
> new = alloc_chunk(size);
> ...
> spin_unlock(&entry->lock);
>
> with
> static struct audit_chunk *alloc_chunk(int count)
> {
> struct audit_chunk *chunk;
> ...
> chunk = kzalloc(size, GFP_KERNEL);
>
> But this can sleep. How big the allocations are? Could it be ATOMIC or
> moved outside the spinlock?
>
> thanks,
--
js
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/