Date: Mon, 29 Jan 2001 18:38:24 +0000 From: Brian Somers <brian@Awfulhak.org> To: Peter Wemm <peter@netplex.com.au> Cc: Brian Somers <brian@Awfulhak.org>, freebsd-arch@FreeBSD.ORG, brian@Awfulhak.org Subject: Re: Cloned open support Message-ID: <200101291838.f0TIcO203434@hak.lan.Awfulhak.org> In-Reply-To: Message from Peter Wemm <peter@netplex.com.au> of "Mon, 29 Jan 2001 06:02:10 PST." <200101291402.f0TE2A451479@mobile.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> Brian Somers wrote: > > Hi, > > > > I'm considering having a crack at adding support for cloned opens. > > Before I start, I guess I've got two questions: > > > > 1. Is anybody else doing this. > > > > 2. Given that I'll need to change the d_open prototype (and > > thus cdevsw), I'm going to affect every device driver in the > > tree - although only changing the first arg to a (dev_t) > > pointer, making things pretty easy to change and not too > > unexpected for anyone that's written sysv drivers. > > Not necessary. dev_t *is* a pointer. Add a flag to the device flags to Ach, I was thinking userland-dev_t aka udev_t :-/ Yes, the prototypes don't need to change :-D > indicate that it allows clone opens, and maybe teach specfs a little about > it (ie: that the unit will be reassigned on a clone open) and you're done. I don't think it's that easy. I believe the vnode that's attached to the specinfo needs to be discarded (and any VN_RELE()s done) when the open routine changes dev->si_udev, and probably dev->si_udev needs to be put back. The specinfo code then needs to create a new vnode and return that from VOP_OPEN() - changing the VOP_OPEN() prototype to be passed a vnode **.... I tried before to get things to work by adjusting the vnode that's passed into VOP_OPEN(), but failed miserably - probably because I don't fully understand the relationship between vnodes and the namei stuff.... I *guess* it's cleaner to create the new vnode so that the namei caching side of things can do it's job on the clone device. > Cheers, > -Peter > -- > Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au > "All of this is for nothing if we don't go to the stars" - JMS/B5 -- Brian <brian@Awfulhak.org> <brian@[uk.]FreeBSD.org> <http://www.Awfulhak.org> <brian@[uk.]OpenBSD.org> Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101291838.f0TIcO203434>