فهرست منبع

fs/notify/inotify: decrement user inotify count on close

The per-user inotify_devs value is incremented each time a new file is
allocated, but never decremented. This led to inotify_init failing after a
limited number of calls.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
Keith Packard 16 سال پیش
والد
کامیت
bdae997f44
1فایلهای تغییر یافته به همراه3 افزوده شده و 0 حذف شده
  1. 3 0
      fs/notify/inotify/inotify_user.c

+ 3 - 0
fs/notify/inotify/inotify_user.c

@@ -296,12 +296,15 @@ static int inotify_fasync(int fd, struct file *file, int on)
 static int inotify_release(struct inode *ignored, struct file *file)
 static int inotify_release(struct inode *ignored, struct file *file)
 {
 {
 	struct fsnotify_group *group = file->private_data;
 	struct fsnotify_group *group = file->private_data;
+	struct user_struct *user = group->inotify_data.user;
 
 
 	fsnotify_clear_marks_by_group(group);
 	fsnotify_clear_marks_by_group(group);
 
 
 	/* free this group, matching get was inotify_init->fsnotify_obtain_group */
 	/* free this group, matching get was inotify_init->fsnotify_obtain_group */
 	fsnotify_put_group(group);
 	fsnotify_put_group(group);
 
 
+	atomic_dec(&user->inotify_devs);
+
 	return 0;
 	return 0;
 }
 }