Subject: Re: lseek(2) & read(2) on raw cd(4) device
To: None <greywolf@starwolf.com>
From: Sean Doran <smd@ebone.net>
List: tech-kern
Date: 08/25/2000 00:10:18
| # if (CDPART(bp->b_dev) != RAW_PART &&
|
| um, /dev/r?d[0-9]*[a-h] are raw partitions.
| /dev/?d[0-9]*[a-h] are block partitions.
Uhm, "raw partitions" is a bad term; 'un-blocked interfaces' perhaps is clearer?
RAW_PART (see above) is defined in places like this:
./arch/i386/include/disklabel.h:#define RAW_PART 3
/* raw partition: XX?d (XXX) */
./arch/alpha/include/disklabel.h:#define RAW_PART 2
/* raw partition: xx?c */
So, having learned alot about the "BSD way" of lseek versus vnodes,
can anyone explain to me why we don't do bounds-checking on RAW_PART in
cdstrategy/sdstrategy/etc.?
[Also, should we note in the pax(1) man page that one wants to use !RAW_PART
when writing to / reading from a device whose strategy routine behaves this
way?]
Sean.