fsnotify: don't BUG in fsnotify_destroy_mark()
commita8b1c0addba3ec8316b915b7747c590da4fb6576
authorMiklos Szeredi <mszeredi@suse.cz>
Thu, 12 Jan 2012 16:59:46 +0000 (12 17:59 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Jan 2012 00:13:33 +0000 (25 16:13 -0800)
treef473262184b6c452a6250829aad13a96cc6b837e
parent6437ff72d1f301649a35634b426492e597e5d094
fsnotify: don't BUG in fsnotify_destroy_mark()

commit fed474857efbed79cd390d0aee224231ca718f63 upstream.

Removing the parent of a watched file results in "kernel BUG at
fs/notify/mark.c:139".

To reproduce

  add "-w /tmp/audit/dir/watched_file" to audit.rules
  rm -rf /tmp/audit/dir

This is caused by fsnotify_destroy_mark() being called without an
extra reference taken by the caller.

Reported by Francesco Cosoleto here:

  https://bugzilla.novell.com/show_bug.cgi?id=689860

Fix by removing the BUG_ON and adding a comment about not accessing mark after
the iput.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/notify/mark.c