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>
index | next in thread | previous in thread | raw e-mail
> 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
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101291838.f0TIcO203434>
