Approval request of some additions to src/sys/kern/vfs_subr.c and src/sys/sys/vnode.h

Kostik Belousov kostikbel at gmail.com
Sat Apr 26 10:01:32 UTC 2008


On Fri, Apr 25, 2008 at 07:21:20PM +0900, Daichi GOTO wrote:
> Hi Konstantin :)
> 
> To fix a unionfs issue of http://www.freebsd.org/cgi/query-pr.cgi?pr=109377,
> we need to add new functions
> 
>    void vkernrele(struct vnode *vp);
>    void vkernref(struct vnode *vp);
> 
> and one value
> 
>    int	v_kernusecount; /* i ref count of kernel */
> 
> to src/sys/sys/vnode.h and rc/sys/kern/vfs_subr.c.
> 
> Unionfs will be panic when lower fs layer is forced umounted by
> "umount -f".  So to avoid this issue, we've added
> "v_kernusecount" value that means "a vnode count that kernel are
> using".  vkernrele() and vkernref() are functions that manage
> "v_kernusecount" value.
> 
> Please check those and give us an approve or some comments!

There is already the vnode reference count. From your description, I cannot
understand how the kernusecount would prevent the panic when forced unmount
is performed. Could you, please, show the actual code ? PR mentioned
does not contain any patch.

The problem you described is common for the kernel code, and right way
to handle it, for now, is to keep refcount _and_ check for the forced
reclaim.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20080426/b8962f0b/attachment.pgp


More information about the freebsd-fs mailing list