Module Name:    src
Committed By:   hannken
Date:           Sat Dec 13 15:59:03 UTC 2014

Modified Files:
        src/sys/coda: coda_vnops.c

Log Message:
Remove cnodes from coda_reclaim(), not from coda_inactive().


To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 src/sys/coda/coda_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/coda/coda_vnops.c
diff -u src/sys/coda/coda_vnops.c:1.99 src/sys/coda/coda_vnops.c:1.100
--- src/sys/coda/coda_vnops.c:1.99	Sat Dec 13 15:57:46 2014
+++ src/sys/coda/coda_vnops.c	Sat Dec 13 15:59:03 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: coda_vnops.c,v 1.99 2014/12/13 15:57:46 hannken Exp $	*/
+/*	$NetBSD: coda_vnops.c,v 1.100 2014/12/13 15:59:03 hannken Exp $	*/
 
 /*
  *
@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.99 2014/12/13 15:57:46 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.100 2014/12/13 15:59:03 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -844,18 +844,6 @@ coda_inactive(void *v)
     CODADEBUG(CODA_INACTIVE, myprintf(("in inactive, %s, vfsp %p\n",
 				  coda_f2s(&cp->c_fid), vp->v_mount));)
 
-    /* If an array has been allocated to hold the symlink, deallocate it */
-    if ((coda_symlink_cache) && (VALID_SYMLINK(cp))) {
-	if (cp->c_symlink == NULL)
-	    panic("%s: null symlink pointer in cnode", __func__);
-
-	CODA_FREE(cp->c_symlink, cp->c_symlen);
-	cp->c_flags &= ~C_SYMLINK;
-	cp->c_symlen = 0;
-    }
-
-    /* Remove it from the table so it can't be found. */
-    coda_unsave(cp);
     if (vp->v_mount->mnt_data == NULL) {
 	myprintf(("Help! vfsp->vfs_data was NULL, but vnode %p wasn't dying\n", vp));
 	panic("badness in coda_inactive");
@@ -1676,6 +1664,18 @@ coda_reclaim(void *v)
 	}
 #endif
     }
+    /* If an array has been allocated to hold the symlink, deallocate it */
+    if ((coda_symlink_cache) && (VALID_SYMLINK(cp))) {
+	if (cp->c_symlink == NULL)
+	    panic("%s: null symlink pointer in cnode", __func__);
+
+	CODA_FREE(cp->c_symlink, cp->c_symlen);
+	cp->c_flags &= ~C_SYMLINK;
+	cp->c_symlen = 0;
+    }
+
+    /* Remove it from the table so it can't be found. */
+    coda_unsave(cp);
     coda_free(VTOC(vp));
     SET_VTOC(vp) = NULL;
     return (0);

Reply via email to