Subject: Re: removing VOPs
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Jonathan Stone <jonathan@Pescadero.dsg.stanford.edu>
List: tech-kern
Date: 09/27/2005 11:08:54
In message <1127804146.169089.8336.nullmailer@yamt.dyndns.org>,
YAMAMOTO Takashi writes:

>hi,
>
>unless anyone objects, i'll remove the following VOPs.
>ie. make them filesystem internal.
>
>	VOP_BLKATOFF
>	VOP_VALLOC
>	VOP_REALLOCBLKS
>	VOP_VFREE
>	VOP_TRUNCATE
>	VOP_UPDATE

Yamamto-san,

I agre with the overall goal of simlpifying the VFS layer.
But please, can we also ensure that the VFS layer still exports all
the vnode operations necessary to support virtualizing a filesystem --
as done, for example, for FreeBSD-4 by Erez Zadok's FiST tool?

(If I ever find time, I intend to write a wrapfs for NetBSD-3 or
-current, assuming the FreeBSD-4 wrapfs is a useful starting point).


>afaik there is no point to export them.

I have a dim memory that the Solaris vnode interface uses VOP_TRUNCATE
between stackable filesystems, though I don't recall if Solaris has
a VOP_SETATTR, or (if so) why they use VOP_TRUNCATE also.

If (dim) memory serves, the FICUS work from UCLA was the source of
support for stackable filesystems and was the motivating factor
whereby CSRG put the "message-passing" VOP interface in 4.4BSD.  It'd
be nice not to lose that functionality.

Speaking of which; Has anyone who knows our VFS/vnode API really well
(Bill comes to mind; anyone else) ever had a look at the patches to
FreeBSD-4's vnode ops which are bundled with the FiST templates for
FreeBSD-4? Does our vnode API have any of the same limitations which
made those patches necessary for a stackable filesystem like wrapfs?