Date: Wed, 28 Mar 2007 13:21:21 -0400 From: Aniruddha Bohra <bohra@cs.rutgers.edu> To: freebsd-fs@freebsd.org, =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no> Subject: Pseudofs question Message-ID: <460AA411.3010904@cs.rutgers.edu>
next in thread | raw e-mail | index | archive | help
Hi,
Pseudofs handles the fileno allocation and deallocation using
alloc_unr() and free_unr().
The fileno is allocated on demand when vn_readdir is called
(pseudofs_vnops.c). However,
I could not find the deallocation in pseudofs.
So, when I unload my fs module, I get a crash with the unit busy:
kern/subr_unit.c:321 KASSERT(uh->busy == 0, ("unrhdr has %u
allocations", uh->busy));
This is a good kassert as the pfs_fileno_free is never called.
Actually, the module unload function calls _fsname_uninit() which calls
pfs_uninit() which calls
pfs_fileno_uninit(pi) without first destroying the file system or
deallocating any allocated unit numbers.
Am I missing something obvious in my implementation since I do not see a
similar crash with procfs :(
Thanks
Aniruddha
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?460AA411.3010904>
