DragonFly kernel List (threaded) for 2007-08
DragonFly BSD
DragonFly kernel List (threaded) for 2007-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: URGENT: [diagnostic] cache_lock: blocked on 0xda5265a8 ""


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Aug 2007 21:42:49 -0700 (PDT)

::
::Please let me know whats happening. its pretty urgent, as it has just
::happened again.
::
::petr
    
    Well.  How interesting.  I think I found it.  It looks like the NFS
    mount point vnode is becoming stale.  It wasn't releasing the vnode
    before attempting to re-resolve the node.

    Please try this patch and tell me if it works.  How many days does it
    usually take for it to hit the bug?

						-Matt


Index: kern/vfs_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.112.2.1
diff -u -p -r1.112.2.1 vfs_syscalls.c
--- kern/vfs_syscalls.c	26 Jan 2007 18:55:31 -0000	1.112.2.1
+++ kern/vfs_syscalls.c	30 Aug 2007 04:40:51 -0000
@@ -2117,14 +2117,14 @@ 	 * If the file handle is stale we have 
 	 * is a hack at the moment.
 	 */
 	if (error == ESTALE) {
+		vput(vp);
 		cache_setunresolved(&nd->nl_nch);
 		error = cache_resolve(&nd->nl_nch, nd->nl_cred);
-		if (error == 0) {
-			vput(vp);
+		if (error == 0)
 			goto again;
-		}
+	} else {
+		vput(vp);
 	}
-	vput(vp);
 	return (error);
 }
 



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