inotify: do not leak inode marks in inotify_add_watch
authorEric Paris <eparis@redhat.com>
Tue, 7 Jul 2009 14:28:23 +0000 (10:28 -0400)
committerEric Paris <eparis@redhat.com>
Tue, 21 Jul 2009 19:26:26 +0000 (15:26 -0400)
commit75fe2b26394c59c8e16bd7b76f4be5d048103ad1
tree0f2a6c59dd1c6eddc497b9c7363298e949c0768a
parent5549f7cdf84c02939fd368d0842aa2f472bb6e98
inotify: do not leak inode marks in inotify_add_watch

inotify_add_watch had a couple of problems.  The biggest being that if
inotify_add_watch was called on the same inode twice (to update or change the
event mask) a refence was taken on the original inode mark by
fsnotify_find_mark_entry but was not being dropped at the end of the
inotify_add_watch call.  Thus if inotify_rm_watch was called although the mark
was removed from the inode, the refcnt wouldn't hit zero and we would leak
memory.

Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
fs/notify/inotify/inotify_user.c