On Wed, 1 Mar 2006 20:51:38 -0800, Andrew Morton <[email protected]> wrote: > "J.A. Magallon" <[email protected]> wrote: > > > > On Wed, 1 Mar 2006 02:32:35 -0800, Andrew Morton <[email protected]> wrote: > > > > > > > > Useful, thanks. So the second batch of /proc patches are indeed the problem. > > > > > > If you have (even more) time you could test > > > http://www.zip.com.au/~akpm/linux/patches/stuff/2.6.16-rc5-mm2-pre1.gz. > > > That's the latest of everything with the problematic sysfs patches reverted > > > and Eric's recent /proc fixes. > > > > > > > I just tried rc5-mm1 and this. With this I can run java apps/applets again > > without locking my system. > > > > I also applied the patch you posted for inotify, but now I get this new one: > > > > Mar 1 15:11:04 werewolf kernel: [ 1424.891482] BUG: warning at fs/inotify.c:410/set_dentry_child_flags() > > Which patch was that? The first one was doubly broken. > > This is closer. > > diff -puN fs/dcache.c~inotify-lock-avoidance-with-parent-watch-status-in-dentry-fix fs/dcache.c > --- devel/fs/dcache.c~inotify-lock-avoidance-with-parent-watch-status-in-dentry-fix 2006-03-01 12:16:22.000000000 -0800 > +++ devel-akpm/fs/dcache.c 2006-03-01 12:18:34.000000000 -0800 > @@ -100,6 +100,7 @@ static void dentry_iput(struct dentry * > if (inode) { > dentry->d_inode = NULL; > list_del_init(&dentry->d_alias); > + dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED; > spin_unlock(&dentry->d_lock); > spin_unlock(&dcache_lock); > if (!inode->i_nlink) > _ > > What I have collected till now is below (against -mm2-pre1). What is (not) needed from this ? Thanks... --- devel/fs/inotify.c~a 2006-03-01 02:47:01.000000000 -0800 +++ devel-akpm/fs/inotify.c 2006-03-01 02:47:06.000000000 -0800 @@ -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,14 +401,14 @@ 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); child->d_flags |= DCACHE_INOTIFY_PARENT_WATCHED; } else { - WARN_ON(!(child->d_flags & - DCACHE_INOTIFY_PARENT_WATCHED)); child->d_flags&=~DCACHE_INOTIFY_PARENT_WATCHED; } spin_unlock(&child->d_lock); @@ -530,7 +530,6 @@ void inotify_d_instantiate(struct dentry if (!inode) return; - WARN_ON(entry->d_flags & DCACHE_INOTIFY_PARENT_WATCHED); spin_lock(&entry->d_lock); parent = entry->d_parent; if (inotify_inode_watched(parent->d_inode)) --- linux-2.6.orig/fs/dcache.c +++ linux-2.6/fs/dcache.c @@ -100,6 +100,7 @@ static void dentry_iput(struct dentry * if (inode) { dentry->d_inode = NULL; list_del_init(&dentry->d_alias); + dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED; spin_unlock(&dentry->d_lock); spin_unlock(&dcache_lock); if (!inode->i_nlink) @@ -1203,6 +1204,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; -- J.A. Magallon <jamagallon()able!es> \ Software is like sex: werewolf!able!es \ It's better when it's free Mandriva Linux release 2006.1 (Cooker) for i586 Linux 2.6.15-jam14 (gcc 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1))
Attachment:
signature.asc
Description: PGP signature
- Follow-Ups:
- Re: 2.6.16-rc5-mm1
- From: Andrew Morton <[email protected]>
- Re: 2.6.16-rc5-mm1
- References:
- 2.6.16-rc5-mm1
- From: Andrew Morton <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: "Jesper Juhl" <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Jiri Slaby <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: "Jesper Juhl" <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Laurent Riffard <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Andrew Morton <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Laurent Riffard <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Andrew Morton <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: "J.A. Magallon" <[email protected]>
- Re: 2.6.16-rc5-mm1
- From: Andrew Morton <[email protected]>
- 2.6.16-rc5-mm1
- Prev by Date: Re: [PATCH 02/27] allow hard links to directories, opt-in for any filesystem
- Next by Date: Re: [Fwd: [PATCH 3/5] NFS: Abstract out namespace initialisation [try #2]]
- Previous by thread: Re: 2.6.16-rc5-mm1
- Next by thread: Re: 2.6.16-rc5-mm1
- Index(es):