From owner-freebsd-current Fri Jun 16 5:27:32 2000 Delivered-To: freebsd-current@freebsd.org Received: from lor.watermarkgroup.com (lor.watermarkgroup.com [207.202.73.33]) by hub.freebsd.org (Postfix) with ESMTP id 68AFF37B68E; Fri, 16 Jun 2000 05:27:29 -0700 (PDT) (envelope-from luoqi@watermarkgroup.com) Received: (from luoqi@localhost) by lor.watermarkgroup.com (8.10.1/8.10.1) id e5GCRSd01893; Fri, 16 Jun 2000 08:27:28 -0400 (EDT) Date: Fri, 16 Jun 2000 08:27:28 -0400 (EDT) From: Luoqi Chen Message-Id: <200006161227.e5GCRSd01893@lor.watermarkgroup.com> To: current@FreeBSD.ORG, phk@FreeBSD.ORG Subject: Re: HEADSUP: bioops patch. Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > 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