Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Sep 2003 09:29:06 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   Re: HEADSUP: Change of makedev() semantics.
Message-ID:  <20030928235906.GG11520@wantadilla.lemis.com>
In-Reply-To: <Pine.NEB.3.96L.1030928193949.20493L-100000@fledge.watson.org>
References:  <20030928230008.GF11520@wantadilla.lemis.com> <Pine.NEB.3.96L.1030928193949.20493L-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--S5HS5MvDw4DmbRmb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sunday, 28 September 2003 at 19:46:20 -0400, Robert Watson wrote:
>
> On Mon, 29 Sep 2003, Greg 'groggy' Lehey wrote:
>
>> On Sunday, 28 September 2003 at 23:22:07 +0200, Poul-Henning Kamp wrote:
>>> Basically:
>>>
>>> 	3. If you do a "normal" device driver, cache the result
>>> 	   from when you call make_dev().
>>> ...
>>>
>>> 	./dev/vinum
>>> 		Failure to cache result of make_dev() ?
>>
>> Where should this be cached?  Can you point to example code?
>
> Actually, it looks like Vinum is caching the dev_t's,

Ah, you mean saving the results rather than calling make_dev() every
time?  Yes, it only calls make_dev() once for any device.

> but it's not always using them to get back to the dev_t--sometimes
> it's invoking makedev() instead.  However, this appears to happen
> only in the vinumrevive.c code, so I'm not sure if that's a property
> of the cached reference being unavailable it looks like it should be
> available in that context though.

No, it should always be available.  I was going to say "I don't see
any references to make_dev() in vinumrevive.c, nor any references to
makedev() at all", but I see that VINUM_SD includes both.

> I.e., using sd->dev instead of VINUM_SD() -- it looks like there is
> a valid (struct sd *) reference there to follow, so you can get to
> the dev_t without doing a makedev().

Yes, this is a bug (and an indication of the dangers of using macros :-)
I'll fix it.

Greg
--
See complete headers for address and phone numbers.
NOTE: Due to the currently active Microsoft-based worms, I am limiting
all incoming mail to 131,072 bytes.  This is enough for normal mail,
but not for large attachments.  Please send these as URLs.

--S5HS5MvDw4DmbRmb
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (FreeBSD)

iD8DBQE/d3XKIubykFB6QiMRAm5CAKCPLcOmXQlsNb4IVNsJz2Wx1ip2SQCfTBtE
E5DAbhM6C3Lms7NO/7/bJn0=
=SbzM
-----END PGP SIGNATURE-----

--S5HS5MvDw4DmbRmb--



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