> 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()?


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to