Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7f0ce4e authored by Eric Paris's avatar Eric Paris
Browse files

inotify: do not spam console without limit



inotify was supposed to have a dmesg printk ratelimitor which would cause
inotify to only emit one message per boot.  The static bool was never set
so it kept firing messages.  This patch correctly limits warnings in multiple
places.

Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent 2dfc1cae
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -449,20 +449,18 @@ static void inotify_remove_from_idr(struct fsnotify_group *group,
	 * if it wasn't....
	 */
	if (wd == -1) {
		printk(KERN_WARNING "%s: ientry=%p ientry->wd=%d ientry->group=%p"
		WARN_ONCE(1, "%s: ientry=%p ientry->wd=%d ientry->group=%p"
			" ientry->inode=%p\n", __func__, ientry, ientry->wd,
			ientry->fsn_entry.group, ientry->fsn_entry.inode);
		WARN_ON(1);
		goto out;
	}

	/* Lets look in the idr to see if we find it */
	found_ientry = inotify_idr_find_locked(group, wd);
	if (unlikely(!found_ientry)) {
		printk(KERN_WARNING "%s: ientry=%p ientry->wd=%d ientry->group=%p"
		WARN_ONCE(1, "%s: ientry=%p ientry->wd=%d ientry->group=%p"
			" ientry->inode=%p\n", __func__, ientry, ientry->wd,
			ientry->fsn_entry.group, ientry->fsn_entry.inode);
		WARN_ON(1);
		goto out;
	}

@@ -472,8 +470,7 @@ static void inotify_remove_from_idr(struct fsnotify_group *group,
	 * fucked up somewhere.
	 */
	if (unlikely(found_ientry != ientry)) {
		WARN_ON(1);
		printk(KERN_WARNING "%s: ientry=%p ientry->wd=%d ientry->group=%p "
		WARN_ONCE(1, "%s: ientry=%p ientry->wd=%d ientry->group=%p "
			"entry->inode=%p found_ientry=%p found_ientry->wd=%d "
			"found_ientry->group=%p found_ientry->inode=%p\n",
			__func__, ientry, ientry->wd, ientry->fsn_entry.group,
@@ -489,7 +486,7 @@ static void inotify_remove_from_idr(struct fsnotify_group *group,
	 * one ref grabbed by inotify_idr_find
	 */
	if (unlikely(atomic_read(&ientry->fsn_entry.refcnt) < 3)) {
		printk(KERN_WARNING "%s: ientry=%p ientry->wd=%d ientry->group=%p"
		printk(KERN_ERR "%s: ientry=%p ientry->wd=%d ientry->group=%p"
			" ientry->inode=%p\n", __func__, ientry, ientry->wd,
			ientry->fsn_entry.group, ientry->fsn_entry.inode);
		/* we can't really recover with bad ref cnting.. */