patch-2.3.99-pre6 linux/fs/autofs4/expire.c

Next file: linux/fs/autofs4/init.c
Previous file: linux/fs/autofs4/autofs_i.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre5/linux/fs/autofs4/expire.c linux/fs/autofs4/expire.c
@@ -1,4 +1,4 @@
-/* -*- linux-c -*- --------------------------------------------------------- *
+/* -*- c -*- --------------------------------------------------------------- *
  *
  * linux/fs/autofs/expire.c
  *
@@ -46,8 +46,9 @@
 		count--;
 	}
 
-	/* Mountpoints don't count */
-	if (d_mountpoint(root)) {
+	/* Mountpoints don't count (either mountee or mounter) */
+	if (d_mountpoint(root) ||
+	    root != root->d_covers) {
 		DPRINTK(("is_tree_busy: mountpoint\n"));
 		count--;
 	}
@@ -75,9 +76,11 @@
 		/* Decrement count for unused children */
 		count += (dentry->d_count - 1);
 
-		/* Mountpoints don't count */
-		if (d_mountpoint(dentry)) {
-			DPRINTK(("is_tree_busy: mountpoint\n"));
+		/* Mountpoints don't count (either mountee or mounter) */
+		if (d_mountpoint(dentry) ||
+		    dentry != dentry->d_covers) {
+			DPRINTK(("is_tree_busy: mountpoint dentry=%p covers=%p mounts=%p\n",
+				 dentry, dentry->d_covers, dentry->d_mounts));
 			adj++;
 		}
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)