Module Name: src
Committed By: manu
Date: Fri Jul 27 07:38:45 UTC 2012
Modified Files:
src/sys/fs/puffs: puffs_msgif.c puffs_sys.h puffs_vfsops.c
puffs_vnops.c
Log Message:
Rename slow sopreq queue into node sopreq queue, to refet the fact that
is only intended for postponed node reclaims.
When purging the node sopreq queue, do not call puffs_msg_sendresp(), as
it makes no sense.
To generate a diff of this commit:
cvs rdiff -u -r1.91 -r1.92 src/sys/fs/puffs/puffs_msgif.c
cvs rdiff -u -r1.80 -r1.81 src/sys/fs/puffs/puffs_sys.h
cvs rdiff -u -r1.104 -r1.105 src/sys/fs/puffs/puffs_vfsops.c
cvs rdiff -u -r1.170 -r1.171 src/sys/fs/puffs/puffs_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/fs/puffs/puffs_msgif.c
diff -u src/sys/fs/puffs/puffs_msgif.c:1.91 src/sys/fs/puffs/puffs_msgif.c:1.92
--- src/sys/fs/puffs/puffs_msgif.c:1.91 Sun Jul 22 17:40:46 2012
+++ src/sys/fs/puffs/puffs_msgif.c Fri Jul 27 07:38:44 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_msgif.c,v 1.91 2012/07/22 17:40:46 manu Exp $ */
+/* $NetBSD: puffs_msgif.c,v 1.92 2012/07/27 07:38:44 manu Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.91 2012/07/22 17:40:46 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.92 2012/07/27 07:38:44 manu Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -846,7 +846,7 @@ puffsop_msg(void *this, struct puffs_req
* Node expiry. We come here after an inactive on an unexpired node.
* The expiry has been queued and is done in sop thread.
*/
-static bool
+static void
puffsop_expire(struct puffs_mount *pmp, puffs_cookie_t cookie)
{
struct vnode *vp;
@@ -863,7 +863,7 @@ puffsop_expire(struct puffs_mount *pmp,
vrele(vp);
}
- return false;
+ return;
}
static void
@@ -1058,11 +1058,9 @@ puffs_sop_thread(void *arg)
mutex_enter(&pmp->pmp_sopmtx);
for (keeprunning = true; keeprunning; ) {
/*
- * We have a higher priority queue for flush and umount
- * and a lower priority queue for reclaims. Request on
- * slower queue are not honoured before clock reaches
- * psopr_at. This code assumes that requests are ordered
- * by psopr_at in queues.
+ * We have a fast queue for flush and umount, and a node
+ * queue for delayes node reclaims. Requests on node queue * are not honoured before clock reaches psopr_at. This
+ * code assumes that requests are ordered by psopr_at.
*/
do {
psopr = TAILQ_FIRST(&pmp->pmp_sopfastreqs);
@@ -1072,9 +1070,9 @@ puffs_sop_thread(void *arg)
break;
}
- psopr = TAILQ_FIRST(&pmp->pmp_sopslowreqs);
+ psopr = TAILQ_FIRST(&pmp->pmp_sopnodereqs);
if ((psopr != NULL) && TIMED_OUT(psopr->psopr_at)) {
- TAILQ_REMOVE(&pmp->pmp_sopslowreqs,
+ TAILQ_REMOVE(&pmp->pmp_sopnodereqs,
psopr, psopr_entries);
break;
}
@@ -1123,10 +1121,10 @@ puffs_sop_thread(void *arg)
mutex_enter(&pmp->pmp_sopmtx);
}
- while ((psopr = TAILQ_FIRST(&pmp->pmp_sopslowreqs)) != NULL) {
- TAILQ_REMOVE(&pmp->pmp_sopslowreqs, psopr, psopr_entries);
+ while ((psopr = TAILQ_FIRST(&pmp->pmp_sopnodereqs)) != NULL) {
+ TAILQ_REMOVE(&pmp->pmp_sopnodereqs, psopr, psopr_entries);
mutex_exit(&pmp->pmp_sopmtx);
- puffs_msg_sendresp(pmp, &psopr->psopr_preq, ENXIO);
+ KASSERT(psopr->psopr_sopreq == PUFFS_SOPREQ_EXPIRE);
kmem_free(psopr, sizeof(*psopr));
mutex_enter(&pmp->pmp_sopmtx);
}
Index: src/sys/fs/puffs/puffs_sys.h
diff -u src/sys/fs/puffs/puffs_sys.h:1.80 src/sys/fs/puffs/puffs_sys.h:1.81
--- src/sys/fs/puffs/puffs_sys.h:1.80 Sat Jul 21 05:17:10 2012
+++ src/sys/fs/puffs/puffs_sys.h Fri Jul 27 07:38:44 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_sys.h,v 1.80 2012/07/21 05:17:10 manu Exp $ */
+/* $NetBSD: puffs_sys.h,v 1.81 2012/07/27 07:38:44 manu Exp $ */
/*
* Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved.
@@ -176,7 +176,7 @@ struct puffs_mount {
kcondvar_t pmp_sopcv;
int pmp_sopthrcount;
TAILQ_HEAD(, puffs_sopreq) pmp_sopfastreqs;
- TAILQ_HEAD(, puffs_sopreq) pmp_sopslowreqs;
+ TAILQ_HEAD(, puffs_sopreq) pmp_sopnodereqs;
bool pmp_docompat;
};
Index: src/sys/fs/puffs/puffs_vfsops.c
diff -u src/sys/fs/puffs/puffs_vfsops.c:1.104 src/sys/fs/puffs/puffs_vfsops.c:1.105
--- src/sys/fs/puffs/puffs_vfsops.c:1.104 Fri Jul 27 07:25:56 2012
+++ src/sys/fs/puffs/puffs_vfsops.c Fri Jul 27 07:38:44 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vfsops.c,v 1.104 2012/07/27 07:25:56 manu Exp $ */
+/* $NetBSD: puffs_vfsops.c,v 1.105 2012/07/27 07:38:44 manu Exp $ */
/*
* Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.104 2012/07/27 07:25:56 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.105 2012/07/27 07:38:44 manu Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -309,7 +309,7 @@ puffs_vfsop_mount(struct mount *mp, cons
TAILQ_INIT(&pmp->pmp_msg_touser);
TAILQ_INIT(&pmp->pmp_msg_replywait);
TAILQ_INIT(&pmp->pmp_sopfastreqs);
- TAILQ_INIT(&pmp->pmp_sopslowreqs);
+ TAILQ_INIT(&pmp->pmp_sopnodereqs);
if ((error = kthread_create(PRI_NONE, KTHREAD_MPSAFE, NULL,
puffs_sop_thread, pmp, NULL, "puffsop")) != 0)
Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.170 src/sys/fs/puffs/puffs_vnops.c:1.171
--- src/sys/fs/puffs/puffs_vnops.c:1.170 Mon Jul 23 19:06:10 2012
+++ src/sys/fs/puffs/puffs_vnops.c Fri Jul 27 07:38:44 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vnops.c,v 1.170 2012/07/23 19:06:10 manu Exp $ */
+/* $NetBSD: puffs_vnops.c,v 1.171 2012/07/27 07:38:44 manu Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.170 2012/07/23 19:06:10 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.171 2012/07/27 07:38:44 manu Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -1279,7 +1279,7 @@ puffs_vnop_inactive(void *v)
if (pmp->pmp_sopthrcount == 0) {
kmem_free(psopr, sizeof(*psopr));
} else {
- TAILQ_INSERT_TAIL(&pmp->pmp_sopslowreqs,
+ TAILQ_INSERT_TAIL(&pmp->pmp_sopnodereqs,
psopr, psopr_entries);
pnode->pn_stat |= PNODE_SOPEXP;
}