> Background:
>
> The bioops operation vector is a list of OO-like operations which can
> be performed on struct buf. They are used by the softupdates code
> to handle dependencies.
>
> Ideally struct buf should have had a real OO like operations vector
> like vnodes have it, and struct bioops is the first step towards that.
>
struct buf will eventually become merely an iocmd structure, so why do
we want to complicate things here?
> One of the reasons we should have OO-like struct buf, is that as
> long as bwrite(bp) "knows" that the buffer is backed by a disk
> device, we cannot use the UFS layer on top of a storage manager
> which isn't based on disk-devices: When UFS modifies a directory
> inode, it will call bwrite(bp) on the buffer with the data. This
> would not work if the backing were based on malloc(9) or anonymous
> swap-backed VM objects for instance.
>
We already have an OO method for bwrite: VOP_BWRITE(), the problem
is most of the code are still calling bwrite() directly. Will it
solve your problem if we change every bwrite() into a VOP_BWRITE()?
-lq
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message