Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Jun 2000 08:27:28 -0400 (EDT)
From:      Luoqi Chen <luoqi@watermarkgroup.com>
To:        current@FreeBSD.ORG, phk@FreeBSD.ORG
Subject:   Re:  HEADSUP: bioops patch.
Message-ID:  <200006161227.e5GCRSd01893@lor.watermarkgroup.com>

next in thread | raw e-mail | index | archive | help
> 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006161227.e5GCRSd01893>