[linux-lvm] A Caldera related bug?
Christoph Hellwig
hch at caldera.de
Thu Aug 30 07:08:48 UTC 2001
On Wed, Aug 29, 2001 at 05:04:01PM -0600, dan_mcmanus at co.blm.gov wrote:
> Hello,
>
> First off, if I'm not supposed to send this to you, I apologize. I am
> running Caldera Openlinux workstation 3.1 with a kernel of 2.4.8 that has
> LVM support enabled. My computer is a gateway 4200 Pentium II, if you care
> about that. I tried this with lvm 1.0.1-rc1, 1.0, and 0.9, following the
> instructions faithfully. What happens is I type "make" (after having typed
> "./configure", of course) and this same error happens in each case:
This is because LVM is _completly_ broken by including kernel headers all
over theplace, and - even worse - sometimes even defining __KERNEL__ and
using kernel-only datatypes.
In fact any system using 2.4.2-ac and newer headers in /usr/include/linux
makes LVM fail this way.
I've attached the workaround I have in my RPM.
Christoph
--
Of course it doesn't work. We've performed a software upgrade.
--- LVM/1.0.1-rc1/kernel/lvm.h~ Thu Aug 30 09:00:30 2001
+++ LVM/1.0.1-rc1/kernel/lvm.h Thu Aug 30 09:02:47 2001
@@ -110,10 +110,7 @@
#include <linux/kdev_t.h>
#include <linux/list.h>
#else
-#define __KERNEL__
#include <linux/kdev_t.h>
-#include <linux/list.h>
-#undef __KERNEL__
#endif /* #ifndef __KERNEL__ */
#include <asm/types.h>
@@ -420,7 +417,11 @@
/* remap physical sector/rdev pairs including hash */
typedef struct lv_block_exception_v1 {
+#ifdef __KERNEL__
struct list_head hash;
+#else
+ uint64_t hash; /* XXX b0rken on 64bit plattforms */
+#endif
uint32_t rsector_org;
kdev_t rdev_org;
uint32_t rsector_new;
More information about the linux-lvm
mailing list