public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@osdl.org>
Cc: Mike Galbraith <efault@gmx.de>,
	laurent.riffard@free.fr, jesper.juhl@gmail.com,
	linux-kernel@vger.kernel.org, rjw@sisk.pl, mbligh@mbligh.org,
	clameter@engr.sgi.com, ebiederm@xmission.com,
	Robert Love <rml@tech9.net>,
	John McCutchan <john@johnmccutchan.com>
Subject: Re: 2.6.16-rc5-mm1
Date: Thu, 02 Mar 2006 15:52:15 +1100	[thread overview]
Message-ID: <440679FF.80101@yahoo.com.au> (raw)
In-Reply-To: <20060301121218.68fb3f76.akpm@osdl.org>

[-- Attachment #1: Type: text/plain, Size: 1027 bytes --]

Andrew Morton wrote:

> Maybe you're not running applications which install inotify watches.  This
> is apparently triggerable by doing `touch foo;rm foo;touch foo' in a watched
> directory.
> 
> Nick, isn't it simply a matter of..
> 

Sorry, I forgot about that. With that patch, d_instantiate can still get some
warnings. The following one should fix that and also makes the watch creation
deletion loop-over-all-dentrys ignore negative dentrys too.

I'm not sure what the cleanest way to do this is. I'm fairly sure the vfs
guys do not want a DENTRY_INOTIFY_ flag in fs/dcache.c, so I've added a
comment there.

I also don't know whether or not the inotify guys want parent events on
negative entries. They don't appear to now, so I'll take that as a no.

After the DENTRY_INOTIFY_PARENT_WATCHED debugging stuff is taken out, that
flag will basically be undefined for negative dentrys rather than always
clear (after this patch). I'm not sure whether the vfs people consider that
to be unclean.

-- 
SUSE Labs, Novell Inc.


[-- Attachment #2: inotify-dentry-flag-fix.patch --]
[-- Type: text/plain, Size: 1314 bytes --]

Index: linux-2.6/fs/dcache.c
===================================================================
--- linux-2.6.orig/fs/dcache.c
+++ linux-2.6/fs/dcache.c
@@ -1177,6 +1177,9 @@ void d_delete(struct dentry * dentry)
 	spin_lock(&dentry->d_lock);
 	isdir = S_ISDIR(dentry->d_inode->i_mode);
 	if (atomic_read(&dentry->d_count) == 1) {
+		/* remove this and other inotify debug checks after 2.6.18 */
+		dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED;
+
 		dentry_iput(dentry);
 		fsnotify_nameremove(dentry, isdir);
 		return;
Index: linux-2.6/fs/inotify.c
===================================================================
--- linux-2.6.orig/fs/inotify.c
+++ linux-2.6/fs/inotify.c
@@ -390,6 +390,7 @@ static inline int inotify_inode_watched(
 
 /*
  * Get child dentry flag into synch with parent inode.
+ * Flag should always be clear for negative dentrys.
  */
 static void set_dentry_child_flags(struct inode *inode, int watched)
 {
@@ -400,6 +401,10 @@ static void set_dentry_child_flags(struc
 		struct dentry *child;
 
 		list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) {
+			if (!child->d_inode) {
+				WARN_ON(child->d_flags & DCACHE_INOTIFY_PARENT_WATCHED);
+				continue;
+			}
 			spin_lock(&child->d_lock);
 			if (watched) {
 				WARN_ON(child->d_flags & DCACHE_INOTIFY_PARENT_WATCHED);

  parent reply	other threads:[~2006-03-02  4:52 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-28 12:24 2.6.16-rc5-mm1 Andrew Morton
2006-02-28 14:41 ` 2.6.16-rc5-mm1 Cornelia Huck
2006-02-28 14:55   ` 2.6.16-rc5-mm1 Martin Schwidefsky
2006-02-28 15:08   ` 2.6.16-rc5-mm1 gsmith
2006-02-28 15:01 ` 2.6.16-rc5-mm1 Michal Piotrowski
2006-02-28 16:20   ` 2.6.16-rc5-mm1 Michal Piotrowski
2006-03-01  2:16     ` 2.6.16-rc5-mm1 Nick Piggin
2006-03-01  2:44       ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01  3:10         ` 2.6.16-rc5-mm1 Nick Piggin
2006-03-01  3:21           ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01  3:30             ` 2.6.16-rc5-mm1 Nick Piggin
2006-03-01  3:42               ` 2.6.16-rc5-mm1 Andrew Morton
2006-02-28 19:40 ` usb usb5: Manufacturer: Linux 2.6.16-rc5-mm1 ehci_hcd Alexey Dobriyan
2006-02-28 20:48   ` [linux-usb-devel] " Alan Stern
2006-02-28 20:48 ` 2.6.16-rc5-mm1 Mattia Dongili
2006-02-28 23:49   ` 2.6.16-rc5-mm1 Alessandro Zummo
2006-02-28 21:13 ` 2.6.16-rc5-mm1 Jesper Juhl
2006-02-28 22:27   ` 2.6.16-rc5-mm1 Jiri Slaby
2006-02-28 22:30     ` 2.6.16-rc5-mm1 Jesper Juhl
2006-02-28 23:18       ` 2.6.16-rc5-mm1 Laurent Riffard
2006-02-28 23:57         ` 2.6.16-rc5-mm1 Jesper Juhl
2006-03-01  0:21         ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01  0:33           ` 2.6.16-rc5-mm1 Jesper Juhl
2006-03-01  3:05           ` 2.6.16-rc5-mm1 Paul Jackson
2006-03-01  3:20             ` 2.6.16-rc5-mm1 Paul Jackson
2006-03-01  4:15             ` 2.6.16-rc5-mm1 Eric W. Biederman
2006-03-01  4:26               ` 2.6.16-rc5-mm1 Paul Jackson
2006-03-01  4:57                 ` 2.6.16-rc5-mm1 Eric W. Biederman
2006-03-01 10:06           ` 2.6.16-rc5-mm1 Laurent Riffard
2006-03-01 10:32             ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01 11:25               ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01 18:14                 ` 2.6.16-rc5-mm1 Ashok Raj
2006-03-01 18:48                   ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01 19:31                     ` 2.6.16-rc5-mm1 Ashok Raj
2006-03-01 13:58               ` 2.6.16-rc5-mm1 Mike Galbraith
2006-03-01 14:50                 ` 2.6.16-rc5-mm1 Laurent Riffard
2006-03-01 15:33                   ` 2.6.16-rc5-mm1 Mike Galbraith
2006-03-01 20:12                     ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01 20:19                       ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01 20:35                       ` 2.6.16-rc5-mm1 Peter Staubach
2006-03-01 20:43                       ` 2.6.16-rc5-mm1 Eric W. Biederman
2006-03-02  4:52                       ` Nick Piggin [this message]
2006-03-02 16:37                       ` [PATCH] proc: Use sane permission checks on the /proc/<pid>/fd/ symlinks Eric W. Biederman
2006-03-03  8:49                         ` Andrew Morton
2006-03-03 12:00                           ` Eric W. Biederman
2006-03-01 14:22               ` 2.6.16-rc5-mm1 J.A. Magallon
2006-03-02  4:51                 ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-02 21:11                   ` 2.6.16-rc5-mm1 J.A. Magallon
2006-03-02 22:31                     ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-02  3:10               ` 2.6.16-rc5-mm1 Paul Jackson
2006-03-01 10:35             ` 2.6.16-rc5-mm1 Laurent Riffard
2006-03-01 10:47               ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-02  1:41           ` 2.6.16-rc5-mm1 Jesper Juhl
2006-03-02 20:16             ` 2.6.16-rc5-mm1 Jesper Juhl
2006-03-02 22:34               ` 2.6.16-rc5-mm1 Eric W. Biederman
2006-03-06  0:05                 ` 2.6.16-rc5-mm1 Jesper Juhl
2006-02-28 23:15   ` 2.6.16-rc5-mm1 Andrew Morton
2006-02-28 23:33     ` 2.6.16-rc5-mm1 Jesper Juhl
2006-02-28 22:34 ` 2.6.16-rc5-mm1 Rafael J. Wysocki
2006-02-28 23:48   ` 2.6.16-rc5-mm1 Andrew Morton
2006-03-01  0:52     ` 2.6.16-rc5-mm1 Eric W. Biederman
2006-03-01 11:42       ` 2.6.16-rc5-mm1 Rafael J. Wysocki
2006-02-28 23:56 ` 2.6.16-rc5-mm1 Martin Bligh
2006-03-01 16:45   ` [PATCH] Fix powerpc bad_page_fault output (Re: 2.6.16-rc5-mm1) Olof Johansson
2006-03-02  0:09     ` Paul E. McKenney
2006-03-02  0:35     ` Paul Mackerras
2006-03-02  1:14       ` Martin Bligh
2006-03-02  2:22         ` Olof Johansson
2006-03-02  5:24           ` Anton Blanchard
2006-03-02  5:16         ` Paul Mackerras
2006-03-02 10:27 ` 2.6.16-rc5-mm1 -- strange load balancing problems Peter Williams
2006-03-02 22:23   ` Peter Williams
2006-03-13  4:46     ` Peter Williams
2006-03-03 15:32 ` 2.6.16-rc5-mm1: USB compile errors Adrian Bunk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=440679FF.80101@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=akpm@osdl.org \
    --cc=clameter@engr.sgi.com \
    --cc=ebiederm@xmission.com \
    --cc=efault@gmx.de \
    --cc=jesper.juhl@gmail.com \
    --cc=john@johnmccutchan.com \
    --cc=laurent.riffard@free.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@mbligh.org \
    --cc=rjw@sisk.pl \
    --cc=rml@tech9.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox