tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: wedge like devices and newfs
Hi,
On May,Friday 29 2009, at 11:57 AM, Manuel Bouyer wrote:
On Fri, May 29, 2009 at 11:09:59AM +0200, Adam Hamsik wrote:
Hi folks,
During my work on LVM and ZFS I have found that for historical
reasons I
need to
provide disklables on Logical volumes aka zvols on ZFS. I have found
that problem
is mostly in newfs because it uses DIOCGDINFO to get info about
disks.
If DIOCGDINFO fails, newfs (and other tools using getdiskinfo())
will use
DIOCGWEDGEINFO. Maybe having zvols should handle DIOCGWEDGEINFO ?
Yes but DIOCGWEDGEINFO is used only to get name of parent device on
which
DIOCGDINFO is later called. Everything which was received from
WEDGEINFO ioctl
was later zeroed and replaced by information from CGDINFO call. Zvols
and lvm
disk devices supports DIOCGDISKINFO and DIOCGWEDGEINFO. Point of my
patch is
add real support for WEDGEINFO ioctl to getdiskinfo() and not add it
to disk
devices.
I
have written
patch against newfs and kernel disk drivers which changes this
behaviour. With my patch
newfs uses DIOCGDISKINFO and DIOCGWEDGEINFO ioctls to get information
about disk/volume
size.
DIOCGDISKINFO is proplib based ioctl which returns dictionary
defined in disk.h with
disk and disk geometry info. DIOCGWEDGEINFO is ioctl for wedge like
devices(Logical volumes,
zvols, dks), other disk devices should still support old disklabel
ioctls.
Why is a new ioctl needed ? I can't see what it does which DIOCGDINFO
and DIOCGWEDGEINFO aren't already doing.
It is not new ioctl, it was implemented for wd and ld disks for some
time.
Even other disk devices created device properties, but they haven't used
disk_ioctl handler to handle it. DISKINFO ioctl is needed to get info
about disk geometry(size of disk blocks etc.. see disk.h Disk
information
dictionary), WEDGEINFO is later used to get information about
partition size,
its offset etc.
Regards
Adam.
Home |
Main Index |
Thread Index |
Old Index