[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/kernel/devel kernel-2.6.spec, 1.2478, 1.2479 linux-2.6-nfs-superblock-unmount-optimization.patch, 1.2, 1.3



Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv26208

Modified Files:
	kernel-2.6.spec 
	linux-2.6-nfs-superblock-unmount-optimization.patch 
Log Message:
VFS: Destroy the dentries contributed by a superblock on unmounting [try #2]


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2478
retrieving revision 1.2479
diff -u -r1.2478 -r1.2479
--- kernel-2.6.spec	30 Jul 2006 08:18:54 -0000	1.2478
+++ kernel-2.6.spec	31 Jul 2006 17:29:21 -0000	1.2479
@@ -1662,6 +1662,9 @@
 %endif
 
 %changelog
+* Mon Jul 31 2006 Dave Jones <davej redhat com>
+- VFS: Destroy the dentries contributed by a superblock on unmounting [try #2]
+
 * Sun Jul 30 2006 Jon Masters <jcm redhat com>
 - Wasn't calling weak-modules properly.
 - kabitool not being picked up (weird).

linux-2.6-nfs-superblock-unmount-optimization.patch:
 fs/autofs4/autofs_i.h  |    3 -
 fs/autofs4/init.c      |    2 
 fs/autofs4/inode.c     |   22 +-------
 fs/autofs4/waitq.c     |    1 
 fs/dcache.c            |  130 +++++++++++++++++++++++++++++++++++++++++++++++++
 fs/super.c             |   12 ++--
 include/linux/dcache.h |    1 
 7 files changed, 143 insertions(+), 28 deletions(-)

Index: linux-2.6-nfs-superblock-unmount-optimization.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-nfs-superblock-unmount-optimization.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-nfs-superblock-unmount-optimization.patch	28 Jul 2006 21:41:06 -0000	1.2
+++ linux-2.6-nfs-superblock-unmount-optimization.patch	31 Jul 2006 17:29:21 -0000	1.3
@@ -145,9 +145,29 @@
  
  static int autofs4_write(struct file *file, const void *addr, int bytes)
 
-Date: Thu, 27 Jul 2006 19:53:52 +0100
 From: David Howells <dhowells redhat com>
-Subject: [RHEL5 PATCH 30/30] VFS: Destroy the dentries contributed by a superblock on unmounting
+Subject: [FC6/RHEL5 PATCH 30/30] VFS: Destroy the dentries contributed by a superblock on unmounting [try #2]
+Date: Mon, 31 Jul 2006 16:11:48 +0100
+
+The attached patch removes a bad check from the dcache dismantling patch [BZ
+200645].
+
+I stuck the check in the dcache umount shrinker because it seemed like a good
+idea not to let iput() see an inode still on an inotify watch list.  However,
+this isn't actually a problem at that point, because the inode is pinned by
+the watcher, and won't go away when the dentry is destroyed.
+
+generic_shutdown_super() deals with such inodes afterwards by calling
+invalidate_inodes(), which calls inotify_unmount_inodes().
+
+This patch should replace the current dentry crunching patch.
+
+David
+
+
+VFS: Destroy the dentries contributed by a superblock on unmounting
+
+From: David Howells <dhowells redhat com>
 
 The attached patch destroys all the dentries attached to a superblock in one go
 by:
@@ -194,16 +214,16 @@
 Acked-by: Ian Kent <raven themaw net>
 ---
 
- fs/dcache.c            |  133 ++++++++++++++++++++++++++++++++++++++++++++++++
+ fs/dcache.c            |  130 ++++++++++++++++++++++++++++++++++++++++++++++++
  fs/super.c             |   12 ++--
  include/linux/dcache.h |    1 
- 3 files changed, 140 insertions(+), 6 deletions(-)
+ 3 files changed, 137 insertions(+), 6 deletions(-)
 
 diff --git a/fs/dcache.c b/fs/dcache.c
-index 17b392a..780f014 100644
+index 17b392a..7579b87 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -547,6 +547,139 @@ repeat:
+@@ -547,6 +547,136 @@ repeat:
  }
  
  /*
@@ -282,9 +302,6 @@
 +
 +			inode = dentry->d_inode;
 +			if (inode) {
-+#ifdef CONFIG_INOTIFY
-+				BUG_ON(!list_empty(&inode->inotify_watches));
-+#endif
 +				dentry->d_inode = NULL;
 +				list_del_init(&dentry->d_alias);
 +				if (dentry->d_op && dentry->d_op->d_iput)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]