mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 22:23:18 +00:00
inotify: fix check for one-shot watches before destroying them
As the IN_ONESHOT bit is never set when an event is sent we must check it in the watch's mask and not in the event's mask. Signed-off-by: Ulisses Furquim <ulissesf@gmail.com> Reported-by: "Clem Taylor" <clem.taylor@gmail.com> Tested-by: "Clem Taylor" <clem.taylor@gmail.com> Cc: Amy Griffis <amy.griffis@hp.com> Cc: Robert Love <rlove@google.com> Cc: John McCutchan <ttb@tentacle.dhs.org> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a4ffc0a0b2
commit
ac74c00e49
@ -283,7 +283,7 @@ static void inotify_dev_queue_event(struct inotify_watch *w, u32 wd, u32 mask,
|
||||
/* we can safely put the watch as we don't reference it while
|
||||
* generating the event
|
||||
*/
|
||||
if (mask & IN_IGNORED || mask & IN_ONESHOT)
|
||||
if (mask & IN_IGNORED || w->mask & IN_ONESHOT)
|
||||
put_inotify_watch(w); /* final put */
|
||||
|
||||
/* coalescing: drop this event if it is a dupe of the previous */
|
||||
|
Loading…
Reference in New Issue
Block a user