Re: [PATCH] fanotify: correct broken ref counting in case adding amark failed

From: Eric Paris
Date: Tue Nov 09 2010 - 15:21:22 EST


On Tue, 2010-11-09 at 18:18 +0100, Lino Sanfilippo wrote:
> If adding a mount or inode mark failed fanotify_free_mark() is called explicitly.
> But at this time the mark has already been put into the destroy list of the
> fsnotify_mark kernel thread. If the thread is too slow it will try to decrease
> the reference of a mark, that has already been freed by fanotify_free_mark().
> (If its fast enough it will only decrease the marks ref counter from 2 to 1 - note
> that the counter has been increased to 2 in add_mark() - which has practically no
> effect.)
> This patch fixes the ref counting by not calling free_mark() explicitly, but
> decreasing the ref counter and rely on the fsnotify_mark thread to cleanup in
> case adding the mark has failed.
>
> Signed-off-by: Lino Sanfilippo <LinoSanfilippo@xxxxxx>

applied to http://git.infradead.org/users/eparis/notify.git/ #for-next

-Eric

--
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/