[linux-lvm] Re: more LVM 0.8 patches
adilger at turbolinux.com
Tue Oct 24 18:47:23 UTC 2000
> > Actually, this is a bit of a problem. In my 2.2 kernel patch, I include an
> > lvm.h that can be used for both user and kernel compiles, so that you are
> > sure you have the same IOP version, struct sizes, etc. However, this lvm.h
> > doesn't exist on 2.4.
> IMHO this is the wrong thing. Userlevel tools should not include kernel
> headers. IOP version mismatches are detected at run time.
> In my RPMs I keep including the userlevel header and it works fine for
> Linux 2.2 and 2.4.
Actually, there IS a problem that isn't addressed by the IOP version,
probably because someone changed the lvm.h file after Heinz added it
to the kernel. In the lv_v2 struct (in the 2.4 kernel sources) the
"uint8 __unused" field was added after lv_block_exception_t, and this
was not reflected in a IOP version change. This field is NOT in the
lvm.h lv_v2 included in the 0.8final user tools.
That is why I chose to have a single lvm.h between user and kernel
space. I know that it is bad to include linux/*.h headers in user
tools, but I wanted the tools to compile properly with the header
in the current kernel.
*** If we at least make the header include/linux/lvm.h and tools/lib/lvm.h
exactly the same, it will make tracking changes a lot easier.
Better would be to have per-struct version numbers, or make the ioctl
numbers reflect the struct sizes (which is already part of the ioctl
definitions) we can track changes a lot easier, and allow backwards
compatibility when struct sizes change because they will get unique
ioctl numbers for the old and new interface.
Note that the user tools tarball that I have also includes the lvm.h
under tools/lib, I just don't use it. At most, you will need to change
#include <linux/lvm.h> to #include <lib/lvm.h> in lvm_user.h and liblvm.h.
If people agree that we should keep kernel and user headers totally
separate, I will change this for my next release.
Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto,
\ would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert
More information about the linux-lvm