forked from luck/tmp_suning_uos_patched
inotify: Fix fsnotify_mark refcount leak in inotify_update_existing_watch()
Commit4d97f7d53d
("inotify: Add flag IN_MASK_CREATE for inotify_add_watch()") forgot to call fsnotify_put_mark() with IN_MASK_CREATE after fsnotify_find_mark() Fixes:4d97f7d53d
("inotify: Add flag IN_MASK_CREATE for inotify_add_watch()") Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
12ad143e1b
commit
62c9d2674b
|
@ -519,8 +519,10 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
||||||
fsn_mark = fsnotify_find_mark(&inode->i_fsnotify_marks, group);
|
fsn_mark = fsnotify_find_mark(&inode->i_fsnotify_marks, group);
|
||||||
if (!fsn_mark)
|
if (!fsn_mark)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
else if (create)
|
else if (create) {
|
||||||
return -EEXIST;
|
ret = -EEXIST;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
i_mark = container_of(fsn_mark, struct inotify_inode_mark, fsn_mark);
|
i_mark = container_of(fsn_mark, struct inotify_inode_mark, fsn_mark);
|
||||||
|
|
||||||
|
@ -548,6 +550,7 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
||||||
/* return the wd */
|
/* return the wd */
|
||||||
ret = i_mark->wd;
|
ret = i_mark->wd;
|
||||||
|
|
||||||
|
out:
|
||||||
/* match the get from fsnotify_find_mark() */
|
/* match the get from fsnotify_find_mark() */
|
||||||
fsnotify_put_mark(fsn_mark);
|
fsnotify_put_mark(fsn_mark);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user