Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: psshfs atf regression tests are broken?
On Sun, 22 Jul 2012, Emmanuel Dreyfus wrote:
Paul Goyette <paul%whooppee.com@localhost> wrote:
Seems that something has recently caused some breakage in the psshfs.
The test case itself seems to be succeeding (?) but post-test clean-up
fails?
Here is a patch that should fix it. I cannot test right now because my
testbed is already running another long test. I am rebuilding the world
in another VM to check it fixes the test, but anyone feel free to beat
me at it.
I have run the t_psshfs tests with this patch, and the tests now run
cleanly, and run to completion.
# atf-run | atf-report
Tests root: /usr/tests/fs/psshfs
t_psshfs (1/1): 3 test cases
inode_nos: [6.503491s] Passed.
ls: [5.819438s] Passed.
pwd: [5.056055s] Passed.
[17.472663s]
Summary for 1 test programs:
3 passed test cases.
0 failed test cases.
0 expected failed test cases.
0 skipped test cases.
#
Index: sys/fs/puffs/puffs_msgif.c
===================================================================
RCS file: /cvsroot/src/sys/fs/puffs/puffs_msgif.c,v
retrieving revision 1.90
diff -U4 -r1.90 puffs_msgif.c
--- sys/fs/puffs/puffs_msgif.c 21 Jul 2012 05:17:10 -0000 1.90
+++ sys/fs/puffs/puffs_msgif.c 22 Jul 2012 07:25:20 -0000
@@ -985,9 +985,8 @@
KASSERT(curlwp != uvm.pagedaemon_lwp);
psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
memcpy(&psopr->psopr_pf, pf, sizeof(*pf));
psopr->psopr_sopreq = PUFFS_SOPREQ_FLUSH;
- psopr->psopr_at = hardclock_ticks;
mutex_enter(&pmp->pmp_sopmtx);
if (pmp->pmp_sopthrcount == 0) {
mutex_exit(&pmp->pmp_sopmtx);
@@ -1010,9 +1009,8 @@
KASSERT(curlwp != uvm.pagedaemon_lwp);
psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
psopr->psopr_preq = *preq;
psopr->psopr_sopreq = PUFFS_SOPREQ_UNMOUNT;
- psopr->psopr_at = hardclock_ticks;
mutex_enter(&pmp->pmp_sopmtx);
if (pmp->pmp_sopthrcount == 0) {
mutex_exit(&pmp->pmp_sopmtx);
@@ -1060,15 +1058,16 @@
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 are
- * not honoured before clock reaches psopr_at. This code
- * assumes that requests are ordered by psopr_at in queues.
+ * 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.
*/
do {
psopr = TAILQ_FIRST(&pmp->pmp_sopfastreqs);
- if ((psopr != NULL) && TIMED_OUT(psopr->psopr_at)) {
+ if (psopr != NULL) {
TAILQ_REMOVE(&pmp->pmp_sopfastreqs,
psopr, psopr_entries);
break;
}
Index: sys/fs/puffs/puffs_vfsops.c
===================================================================
RCS file: /cvsroot/src/sys/fs/puffs/puffs_vfsops.c,v
retrieving revision 1.102
diff -U4 -r1.102 puffs_vfsops.c
--- sys/fs/puffs/puffs_vfsops.c 21 Jul 2012 05:17:11 -0000 1.102
+++ sys/fs/puffs/puffs_vfsops.c 22 Jul 2012 07:25:20 -0000
@@ -421,9 +421,8 @@
*/
KASSERT(curlwp != uvm.pagedaemon_lwp);
psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
psopr->psopr_sopreq = PUFFS_SOPREQSYS_EXIT;
- psopr->psopr_at = hardclock_ticks;
mutex_enter(&pmp->pmp_sopmtx);
if (pmp->pmp_sopthrcount == 0) {
mutex_exit(&pmp->pmp_sopmtx);
kmem_free(psopr, sizeof(*psopr));
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost
!DSPAM:500bab41250031234514069!
-------------------------------------------------------------------------
| Paul Goyette | PGP Key fingerprint: | E-mail addresses: |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer | | pgoyette at netbsd.org |
-------------------------------------------------------------------------
Home |
Main Index |
Thread Index |
Old Index