Maintain a tree of file handles, create nodes from msdosfs_vptofh() and keep
them until either the file gets unlinked or the file system gets unmounted.
Fixes the msdosfs part of PR #43745 (fhopen of an unlinked file causes problems
on multiple file systems)
fixing the return value of tmpfs_fhtovp() in the not-found case.
When vmlocking2 was merged to head (Jan 2008 !!) the inode numbering was
changed. Before inodes were numbered 2..tm_nodes_max-1 and after the
merge the numbers are derived from the nodes memory address.
Fixes PR #43605 (tmpfs file handles are broken)
The cleanup routines were being used to kill the rump process and to delete
the temporary image file. These are things automatically done by atf-run,
but it looks like this code was added here to workaround a previous bug in
the atf-run code.
Note that, in the existing form, the cleanup routines segfault (haven't
spent the time to track down why). atf-run does not care about this
(although it should), buy Kyua does.
As a side effect, this has a teeny-tiny performance speedup in the execution
of the tests including this file.
OKed by njoly@.
would cause it to lock up while waiting for the p2k_ffs_fillfs test case
to complete (in some cases only).
This has been fixed by the upstream revision
3dd2481ec97b2fde76521939b6451d03ce989745 which I have just pulled into
our copy of atf.
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.
Some analysis:
1) p2k_ffs test program opens a socketpair and forks off rump_ffs
2) after mounting the file system, test program decides it
wants to skip the test and exits
3) somehow, the puffs event thread of rump_ffs stays in kqueue
waiting for activity. fstat+gdb suggests it's waiting for the
now-orphaned socketpair (but I didn't fully verify. is there
an easy way to dump the state of a kqueue descriptor?).
4) test program is a zombie
5) atf-run waits forever
Note: this doesn't trigger always.
So, it seems there are at least two bugs: 1) test case doesn't
timeout 2) the kevent call in rump_ffs never returns even though
the sockerpair is orphaned
So, explicitly unmount the file system before skipping the test.
Obviously the above bugs needs to be properly fixed, since other
skipping test cases can unbeknowingly trigger the issue.
error is "Operation not supported".
makes the tmpfs tests produce a sensible result on platforms where
tmpfs is not available (such as the hpc* test runs)
Taylor R Campbell.
I adjusted the test to uudecode + bunzip2 the supplied image, and
removed the "null-finder" from the dirent code, since it had an
off-by-one which made the test fail.