Hello,
This patch introduces some more bug fixes which hopefully address Rob's
Oopses.
I've made sure to call hlist_del_init instead of hlist_del where necessary
(ie: audit_update_watch).
I've also scrapped the audit_is_watched function in favor of !hlist_unhashed.
One other change was putting the lock around the entire list traversal in
audit_drain_watchlist, rather then in it. This was just to make the locking
more uniform (ie: if auditfs_lock is held, whatever is holding it has
complete control).
I also rearranged auditfs_wdata_attach a bit, such that if there is no
context, we return out of the function. I've also made it so the context is
only made auditable if it makes it past the memory allocation. No sense in
making it auditable if we were able to collect audit info.
I added audit_notify_watch hooks to fs/open.c and fs/attr.c
Some other little odds and ends are cleanup related. I removed the item=
field from the PATH record component, I turned audit_notify_watch and
auditfs_attach_wdata into void functions as we're unable to handle failed
memory allocations. Reduced my goto abuse.
-tim