LVM2 on 2.4.22. (Fedora core 1 with nptl)
Subsystems (9)
Trying to install LVM2 on 2.4.22. (Fedora core 1 with nptl)
Downloaded device mapper (device-mapper-stable.tgz) and LVM2 (LVM2.0- stable.tgz) from sistina.com. Unpacked to device-mapper.1.00.5 and LVM2.2.00.07.
For device mapper: did configure followed by make install. There is no patch for 2.4.22 so I assumed that the kernel was already patched (mistake?). LVM and device mapper are already loadable modules, so no need to recompile kernel (correct?). Added script to /etc/modules.conf and reboot. DMESG shows LVM version 1.0.5+(22/07/2002) module loaded.
pvscan -h gives me the following:
Logical Volume Manager 1.0.3
Heinz Mauelshagen, Sistina Software 19/02/2002 (IOP 10)
pvscan -- scan for physical volumes
pvscan [-d|--debug] {-e|--exported | -n/--novolumegroup} [-h|--help]
[-s|--short] [-u|--uuid] [-v[v]|--verbose [--verbose]] [--version]
Why is it telling me 1.0.3 when DMESG says 1.0.5+?
dmsetup --version gives me:
Library version: 1.00.05-ioctl-cvs (2003-09-01) device-mapper: ioctl interface mismatch: kernel(1.0.3), user(4.0.0), cmd(0) Driver version: 1.0.3
The ioctl interface mismatch message behaves kind of strangely in that it isn't written to std error, i.e. dmsetup --version 1> dmsetup.log 2>&1 doesn't write the message to dmsetup.log. It still appears on the console. Even more bizarrely, if I log in through OpenSSH it doesn't appear in my session - it appears on the physical console (i.e. the monitor connected to the server), and it does this even when no user is logged on!!! It also doesn't appear in a terminal session under X. Is this behaviour 'by design'? I missed the message initially and only found it when I physically went to the server...
For LVM:
Did configure and make install. Got the following error message:
device/dev-io.c: In function `dev_get_size':device/dev-io.c:215: error: `BLKGETSIZE64' undeclared (first use in this function)device/dev-io.c:215: error: (Each undeclared identifier is reported only once device/dev-io.c:215: error: for each function it appears in.) make[1]: *** [device/dev-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/usr/LVM/LVM2.2.00.07/lib'
make: *** [lib] Error 2
Is this caused by the ioctl mismatch or is there something else going on here? If it is a known problem, is there a workaround?
After trying all of the above, found patches for 2.4.22 via mailing list archives (2.4.22-dm-1.tar.bz2) and upacked to get directory 2.4.22-dm-1 containing patch files 00001 through 00016 and INDEX. Used cat to create one large patch file (file patches-2.4.22.patch attached) with all the patches (mistake?) and did patch --dry-run -p1
with this file (only dry run, so nothing applied yet). This indicates some patches will apply, some are already applied, and quite a few will fail (see attached patches-2.4.22.log file). Is this because I installed device mapper before the patches, or do these patches just not fit my system?
Also, HOWTO says I need 1.0.6 or later (I assume this is the driver version, not the library version?) - do I need another kernel patch to do that, is it included in the patches I am trying to apply, or will that install as part of LVM2?
Okay, I admit assuming that 2.4.22 didn't need patches was not clever, but the patches aren't anywhere to be found on the sistina.com web site and can only be found by trawling the archives for a link hidden in a message!!! So, can anyone help me fix this mess and get LVM2 up and running? I would appreciate any help or advice that anyone can give. Don't know that
much about linux (not a kernel hacker...) so please try and keep replies as simple as possible :-)
Thanks in advance
patching file Documentation/Configure.help
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file Documentation/Configure.help.rej patching file MAINTAINERS
Hunk #1 succeeded at 571 with fuzz 1 (offset 17 lines).
patching file arch/mips64/kernel/ioctl32.c
patching file arch/parisc/kernel/ioctl32.c
patching file arch/ppc64/kernel/ioctl32.c
patching file arch/s390x/kernel/ioctl32.c
patching file arch/sparc64/kernel/ioctl32.c
patching file arch/x86_64/ia32/ia32_ioctl.c
patching file drivers/md/Config.in
Hunk #1 FAILED at 14.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/Config.in.rej patching file drivers/md/Makefile
Hunk #1 FAILED at 4.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/Makefile.rej patching file fs/buffer.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file fs/buffer.c.rej patching file fs/jbd/journal.c
Hunk #1 FAILED at 1802.
Hunk #2 FAILED at 1812.
Hunk #3 FAILED at 1821.
Hunk #4 FAILED at 1854.
4 out of 4 hunks FAILED -- saving rejects to file fs/jbd/journal.c.rej patching file include/linux/fs.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/fs.h.rej patching file include/linux/jbd.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/jbd.h.rej patching file include/linux/vmalloc.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/vmalloc.h.rej patching file kernel/ksyms.c
Hunk #1 succeeded at 130 with fuzz 1 (offset 16 lines).
patching file mm/Makefile
Hunk #1 FAILED at 9.
1 out of 1 hunk FAILED -- saving rejects to file mm/Makefile.rej patching file mm/filemap.c
Hunk #1 succeeded at 1797 (offset 55 lines).
Hunk #2 succeeded at 3129 (offset 8 lines).
patching file mm/vmalloc.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file mm/vmalloc.c.rej patching file arch/mips64/kernel/ioctl32.c.rej
patching file arch/s390x/kernel/ioctl32.c.rej
patching file drivers/md/dm-daemon.c
patching file drivers/md/dm-daemon.h
The next patch would create the file drivers/md/dm-exception-store.c, which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-exception-store.c.rej patching file drivers/md/dm-io.c
patching file drivers/md/dm-io.h
The next patch would create the file drivers/md/dm-ioctl.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-ioctl.c.rej The next patch would create the file drivers/md/dm-linear.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-linear.c.rej patching file drivers/md/dm-log.c
patching file drivers/md/dm-log.h
patching file drivers/md/dm-raid1.c
The next patch would create the file drivers/md/dm-snapshot.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-snapshot.c.rej The next patch would create the file drivers/md/dm-snapshot.h,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-snapshot.h.rej The next patch would create the file drivers/md/dm-stripe.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-stripe.c.rej The next patch would create the file drivers/md/dm-table.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-table.c.rej The next patch would create the file drivers/md/dm-target.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm-target.c.rej The next patch would create the file drivers/md/dm.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm.c.rej The next patch would create the file drivers/md/dm.h,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/dm.h.rej The next patch would create the file drivers/md/kcopyd.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/kcopyd.c.rej The next patch would create the file drivers/md/kcopyd.h,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file drivers/md/kcopyd.h.rej The next patch would create the file include/linux/device-mapper.h, which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/device-mapper.h.rej The next patch would create the file include/linux/dm-ioctl.h,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/dm-ioctl.h.rej The next patch would create the file include/linux/mempool.h,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/linux/mempool.h.rej patching file mm/filemap.c.rej
The next patch would create the file mm/mempool.c,
which already exists! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file mm/mempool.c.rej patching file drivers/md/dm-exception-store.c
Hunk #1 succeeded at 439 (offset 70 lines).
The next patch would delete the file arch/mips64/kernel/ioctl32.c.rej, which does not exist! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
The next patch would delete the file arch/s390x/kernel/ioctl32.c.rej, which does not exist! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
The next patch would delete the file mm/filemap.c.rej,
which does not exist! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
patching file drivers/md/kcopyd.c
Hunk #1 succeeded at 204 with fuzz 2 (offset 21 lines).
patching file drivers/md/dm-ioctl.c
Hunk #1 FAILED at 593.
Hunk #2 FAILED at 612.
Hunk #3 FAILED at 675.
3 out of 3 hunks FAILED -- saving rejects to file drivers/md/dm-ioctl.c.rej patching file drivers/md/dm-snapshot.c
Hunk #1 FAILED at 525.
Hunk #2 FAILED at 539.
2 out of 2 hunks FAILED -- saving rejects to file drivers/md/dm-snapshot.c.rej patching file drivers/md/lvm.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
3 out of 3 hunks ignored -- saving rejects to file drivers/md/lvm.c.rej patching file fs/buffer.c
Hunk #1 succeeded at 448 with fuzz 1 (offset 72 lines).
patching file fs/reiserfs/super.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file fs/reiserfs/super.c.rej patching file fs/super.c
Hunk #1 succeeded at 46 with fuzz 1 (offset 7 lines).
Hunk #2 succeeded at 470 with fuzz 1 (offset 28 lines).
Hunk #3 succeeded at 548 with fuzz 1 (offset 40 lines).
patching file include/linux/fs.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file include/linux/fs.h.rej patching file kernel/ksyms.c
Hunk #1 FAILED at 189.
1 out of 1 hunk FAILED -- saving rejects to file kernel/ksyms.c.rej patching file drivers/md/dm-snapshot.c
Hunk #1 FAILED at 533.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/dm-snapshot.c.rej patching file drivers/md/dm-snapshot.c
Hunk #1 FAILED at 524.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/dm-snapshot.c.rej patching file drivers/md/dm.c
Hunk #1 FAILED at 951.
Hunk #2 FAILED at 996.
Hunk #3 FAILED at 1028.
3 out of 3 hunks FAILED -- saving rejects to file drivers/md/dm.c.rej can't find file to patch at input line 10728
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Correct error message when start a dm-daemon. |--- diff/drivers/md/dm-daemon.c 2003-08-26 13:59:04.000000000 +0100 |+++ source/drivers/md/dm-daemon.c 2003-08-26 16:28:05.000000000 +0100
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
patching file drivers/md/dm-ioctl.c
Hunk #1 FAILED at 816.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/dm-ioctl.c.rej patching file drivers/md/Config.in
Hunk #1 FAILED at 14.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/Config.in.rej patching file drivers/md/dm-ioctl.c
Hunk #1 succeeded at 401 with fuzz 1 (offset -298 lines).
Hunk #2 FAILED at 684.
1 out of 2 hunks FAILED -- saving rejects to file drivers/md/dm-ioctl.c.rej patching file drivers/md/dm-ioctl.c
Hunk #1 succeeded at 406 with fuzz 2 (offset -362 lines).
Hunk #2 FAILED at 429.
1 out of 2 hunks FAILED -- saving rejects to file drivers/md/dm-ioctl.c.rej patching file drivers/md/dm-linear.c
Hunk #1 FAILED at 27.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/dm-linear.c.rej patching file drivers/md/dm-table.c
Hunk #1 FAILED at 441.
Hunk #2 FAILED at 499.
Hunk #3 succeeded at 445 with fuzz 1 (offset -70 lines).
Hunk #4 FAILED at 453.
Hunk #5 FAILED at 482.
4 out of 5 hunks FAILED -- saving rejects to file drivers/md/dm-table.c.rej patching file fs/buffer.c
Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file fs/buffer.c.rej patching file drivers/md/dm-ioctl.c
Hunk #1 succeeded at 533 with fuzz 1 (offset -338 lines). patching file drivers/md/dm-table.c
Hunk #1 FAILED at 112.
Hunk #2 FAILED at 123.
Hunk #3 FAILED at 193.
Hunk #4 succeeded at 343 with fuzz 2 (offset -141 lines).
3 out of 4 hunks FAILED -- saving rejects to file drivers/md/dm-table.c.rej patching file drivers/md/dm.h
Hunk #1 FAILED at 96.
1 out of 1 hunk FAILED -- saving rejects to file drivers/md/dm.h.rej
cvs dm 1.0
Documentation/Configure.help +14 -0
@@ -1856,6 +1856,20 @@ want), say M here and read <file:Documentation/modules.txt>. The module will be called lvm-mod.o. +Device-mapper support +CONFIG_BLK_DEV_DM + Device-mapper is a low level volume manager. It works by allowing + people to specify mappings for ranges of logical sectors. Various + mapping types are available, in addition people may write their own + modules containing custom mappings if they wish. + + Higher level volume managers such as LVM2 use this driver. + + If you want to compile this as a module, say M here and read + <file:Documentation/modules.txt>. The module will be called dm-mod.o. + + If unsure, say N. + Multiple devices driver support (RAID and LVM) CONFIG_MD Support multiple physical spindles through a single logical device.
MAINTAINERS +7 -0
@@ -554,6 +554,13 @@ W: http://www.debian.org/~dz/i8k/ S: Maintained +DEVICE MAPPER +P: Joe Thornber +M: [email protected] +L: [email protected] +W: http://www.sistina.com/lvm +S: Maintained + DEVICE NUMBER REGISTRY P: H. Peter Anvin M: [email protected]
arch/mips64/kernel/ioctl32.c +17 -0
@@ -36,6 +36,7 @@#include <linux/auto_fs4.h> #include <linux/ext2_fs.h> #include <linux/raid/md_u.h> +#include <linux/dm-ioctl.h> #include <linux/serial.h> #include <scsi/scsi.h>
@@ -1228,6 +1229,22 @@ IOCTL32_DEFAULT(SBPROF_ZBWAITFULL),#endif /* CONFIG_SIBYTE_TBPROF */ +#if defined(CONFIG_BLK_DEV_DM ) || defined(CONFIG_BLK_DEV_DM_MODULE ) +IOCTL32_DEFAULT (DM_VERSION ), +IOCTL32_DEFAULT (DM_REMOVE_ALL ), +IOCTL32_DEFAULT (DM_DEV_CREATE ), +IOCTL32_DEFAULT (DM_DEV_REMOVE ), +IOCTL32_DEFAULT (DM_TABLE_LOAD ), +IOCTL32_DEFAULT (DM_DEV_SUSPEND ), +IOCTL32_DEFAULT (DM_DEV_RENAME ), +IOCTL32_DEFAULT (DM_TABLE_DEPS ), +IOCTL32_DEFAULT (DM_DEV_STATUS ), +IOCTL32_DEFAULT (DM_TABLE_STATUS ), +IOCTL32_DEFAULT (DM_DEV_WAIT ), +IOCTL32_DEFAULT (DM_LIST_DEVICES ), +IOCTL32_DEFAULT (DM_TABLE_CLEAR ), +#endif /* CONFIG_BLK_DEV_DM */ +IOCTL32_DEFAULT (MTIOCTOP ),/* mtio.h ioctls */ IOCTL32_HANDLER (MTIOCGET32 , mt_ioctl_trans), IOCTL32_HANDLER(MTIOCPOS32, mt_ioctl_trans),
arch/parisc/kernel/ioctl32.c +17 -0
@@ -55,6 +55,7 @@#define max max */ #include <linux/lvm.h> #endif /* LVM */ +#include <linux/dm-ioctl.h> #include <scsi/scsi.h> /* Ugly hack. */
@@ -3423,6 +3424,22 @@ COMPATIBLE_IOCTL(LV_BMAP) COMPATIBLE_IOCTL(LV_SNAPSHOT_USE_RATE)#endif /* LVM */ +/* Device-Mapper */ +#if defined(CONFIG_BLK_DEV_DM) || defined(CONFIG_BLK_DEV_DM_MODULE) +COMPATIBLE_IOCTL(DM_VERSION) +COMPATIBLE_IOCTL(DM_REMOVE_ALL) +COMPATIBLE_IOCTL(DM_DEV_CREATE) +COMPATIBLE_IOCTL(DM_DEV_REMOVE) +COMPATIBLE_IOCTL(DM_TABLE_LOAD) +COMPATIBLE_IOCTL(DM_DEV_SUSPEND) +COMPATIBLE_IOCTL(DM_DEV_RENAME) +COMPATIBLE_IOCTL(DM_TABLE_DEPS) +COMPATIBLE_IOCTL(DM_DEV_STATUS) +COMPATIBLE_IOCTL(DM_TABLE_STATUS) +COMPATIBLE_IOCTL(DM_DEV_WAIT) +COMPATIBLE_IOCTL(DM_LIST_DEVICES) +COMPATIBLE_IOCTL(DM_TABLE_CLEAR) +#endif /* CONFIG_BLK_DEV_DM */ #if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)COMPATIBLE_IOCTL (DRM_IOCTL_GET_MAGIC)COMPATIBLE_IOCTL (DRM_IOCTL_IRQ_BUSID)
arch/ppc64/kernel/ioctl32.c +17 -0
@@ -66,6 +66,7 @@#if defined(CONFIG_BLK_DEV_LVM ) || defined(CONFIG_BLK_DEV_LVM_MODULE )#include <linux/lvm.h> #endif /* LVM */ +#include <linux/dm-ioctl.h> #include <scsi/scsi.h> /* Ugly hack. */
@@ -4435,6 +4436,22 @@COMPATIBLE_IOCTL (NBD_PRINT_DEBUG ),COMPATIBLE_IOCTL (NBD_SET_SIZE_BLOCKS ),COMPATIBLE_IOCTL (NBD_DISCONNECT ), +/* device-mapper */ +#if defined(CONFIG_BLK_DEV_DM) || defined(CONFIG_BLK_DEV_DM_MODULE) +COMPATIBLE_IOCTL (DM_VERSION ), +COMPATIBLE_IOCTL (DM_REMOVE_ALL ), +COMPATIBLE_IOCTL (DM_DEV_CREATE ), +COMPATIBLE_IOCTL (DM_DEV_REMOVE ), +COMPATIBLE_IOCTL (DM_TABLE_LOAD ), +COMPATIBLE_IOCTL (DM_DEV_SUSPEND ), +COMPATIBLE_IOCTL (DM_DEV_RENAME ), +COMPATIBLE_IOCTL (DM_TABLE_DEPS ), +COMPATIBLE_IOCTL (DM_DEV_STATUS ), +COMPATIBLE_IOCTL (DM_TABLE_STATUS ), +COMPATIBLE_IOCTL (DM_DEV_WAIT ), +COMPATIBLE_IOCTL (DM_LIST_DEVICES ), +COMPATIBLE_IOCTL (DM_TABLE_CLEAR ), +#endif /* CONFIG_BLK_DEV_DM *//* Remove *PRIVATE in 2.5 */ COMPATIBLE_IOCTL (SIOCDEVPRIVATE ), COMPATIBLE_IOCTL(SIOCDEVPRIVATE+1),
arch/s390x/kernel/ioctl32.c +15 -0
@@ -30,6 +30,7 @@#include <linux/blk.h> #include <linux/elevator.h> #include <linux/raw.h> +#include <linux/dm-ioctl.h> #include <asm/types.h> #include <asm/uaccess.h> #include <asm/dasd.h>
@@ -627,6 +628,20 @@IOCTL32_DEFAULT (SIOCGSTAMP ), +IOCTL32_DEFAULT (DM_VERSION ), +IOCTL32_DEFAULT (DM_REMOVE_ALL ), +IOCTL32_DEFAULT (DM_DEV_CREATE ), +IOCTL32_DEFAULT (DM_DEV_REMOVE ), +IOCTL32_DEFAULT (DM_TABLE_LOAD ), +IOCTL32_DEFAULT (DM_DEV_SUSPEND ), +IOCTL32_DEFAULT (DM_DEV_RENAME ), +IOCTL32_DEFAULT (DM_TABLE_DEPS ), +IOCTL32_DEFAULT (DM_DEV_STATUS ), +IOCTL32_DEFAULT (DM_TABLE_STATUS ), +IOCTL32_DEFAULT (DM_DEV_WAIT ), +IOCTL32_DEFAULT (DM_LIST_DEVICES ), +IOCTL32_DEFAULT (DM_TABLE_CLEAR ), +IOCTL32_DEFAULT (LOOP_SET_FD ), IOCTL32_DEFAULT(LOOP_CLR_FD),
arch/sparc64/kernel/ioctl32.c +17 -0
@@ -56,6 +56,7 @@#if defined(CONFIG_BLK_DEV_LVM ) || defined(CONFIG_BLK_DEV_LVM_MODULE )#include <linux/lvm.h> #endif /* LVM */ +#include <linux/dm-ioctl.h> #include <scsi/scsi.h> /* Ugly hack. */
@@ -5086,6 +5087,22 @@ COMPATIBLE_IOCTL(NBD_PRINT_DEBUG) COMPATIBLE_IOCTL(NBD_SET_SIZE_BLOCKS) COMPATIBLE_IOCTL(NBD_DISCONNECT) +/* device-mapper */ +#if defined(CONFIG_BLK_DEV_DM) || defined(CONFIG_BLK_DEV_DM_MODULE) +COMPATIBLE_IOCTL(DM_VERSION) +COMPATIBLE_IOCTL(DM_REMOVE_ALL) +COMPATIBLE_IOCTL(DM_DEV_CREATE) +COMPATIBLE_IOCTL(DM_DEV_REMOVE) +COMPATIBLE_IOCTL(DM_TABLE_LOAD) +COMPATIBLE_IOCTL(DM_DEV_SUSPEND) +COMPATIBLE_IOCTL(DM_DEV_RENAME) +COMPATIBLE_IOCTL(DM_TABLE_DEPS) +COMPATIBLE_IOCTL(DM_DEV_STATUS) +COMPATIBLE_IOCTL(DM_TABLE_STATUS) +COMPATIBLE_IOCTL(DM_DEV_WAIT) +COMPATIBLE_IOCTL(DM_LIST_DEVICES) +COMPATIBLE_IOCTL(DM_TABLE_CLEAR) +#endif /* CONFIG_BLK_DEV_DM */ /* Linux-1394 */ #if defined(CONFIG_IEEE1394) || defined(CONFIG_IEEE1394_MODULE)COMPATIBLE_IOCTL (AMDTP_IOC_CHANNEL )
arch/x86_64/ia32/ia32_ioctl.c +17 -0
@@ -67,6 +67,7 @@#define max max#include <linux/lvm.h> #endif /* LVM */ +#include <linux/dm-ioctl.h> #include <scsi/scsi.h> /* Ugly hack. */
@@ -4047,6 +4048,22 @@ COMPATIBLE_IOCTL(LV_BMAP) COMPATIBLE_IOCTL(LV_SNAPSHOT_USE_RATE)#endif /* LVM */ +/* Device-Mapper */ +#if defined(CONFIG_BLK_DEV_DM ) || defined(CONFIG_BLK_DEV_DM_MODULE ) +COMPATIBLE_IOCTL(DM_VERSION) +COMPATIBLE_IOCTL(DM_REMOVE_ALL) +COMPATIBLE_IOCTL(DM_DEV_CREATE) +COMPATIBLE_IOCTL(DM_DEV_REMOVE) +COMPATIBLE_IOCTL(DM_TABLE_LOAD) +COMPATIBLE_IOCTL(DM_DEV_SUSPEND) +COMPATIBLE_IOCTL(DM_DEV_RENAME) +COMPATIBLE_IOCTL(DM_TABLE_DEPS) +COMPATIBLE_IOCTL(DM_DEV_STATUS) +COMPATIBLE_IOCTL(DM_TABLE_STATUS) +COMPATIBLE_IOCTL(DM_DEV_WAIT) +COMPATIBLE_IOCTL(DM_LIST_DEVICES) +COMPATIBLE_IOCTL(DM_TABLE_CLEAR) +#endif /* CONFIG_BLK_DEV_DM */ #ifdef CONFIG_AUTOFS_FS COMPATIBLE_IOCTL(AUTOFS_IOC_READY) COMPATIBLE_IOCTL(AUTOFS_IOC_FAIL)
drivers/md/Config.in +4 -0
@@ -14,5 +14,9 @@ dep_tristate ' Multipath I/O support' CONFIG_MD_MULTIPATH $CONFIG_BLK_DEV_MD dep_tristate ' Logical volume manager (LVM) support' CONFIG_BLK_DEV_LVM $CONFIG_MD +if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + dep_tristate ' Device-mapper support (EXPERIMENTAL)' CONFIG_BLK_DEV_DM $CONFIG_MD + dep_tristate ' Mirror (RAID-1) support (EXPERIMENTAL)' CONFIG_BLK_DEV_DM_MIRROR $CONFIG_BLK_DEV_DM +fi endmenu
drivers/md/Makefile +26 -9
@@ -4,24 +4,41 @@ O_TARGET := mddev.o -export-objs := md.o xor.o -list-multi := lvm-mod.o +export-objs := md.o xor.o dm-table.o dm-target.o kcopyd.o dm-daemon.o \ + dm-log.o dm-io.o dm.o + +list-multi := lvm-mod.o dm-mod.o dm-mirror-mod.o lvm-mod-objs := lvm.o lvm-snap.o lvm-fs.o +dm-mod-objs := dm.o dm-table.o dm-target.o dm-ioctl.o \ + dm-linear.o dm-stripe.o dm-snapshot.o dm-exception-store.o \ + kcopyd.o dm-daemon.o dm-io.o +dm-mirror-mod-objs := dm-raid1.o dm-log.o # Note: link order is important. All raid personalities # and xor.o must come before md.o, as they each initialise # themselves, and md.o may use the personalities when it # auto-initialised. -obj-$(CONFIG_MD_LINEAR) += linear.o -obj-$(CONFIG_MD_RAID0) += raid0.o -obj-$(CONFIG_MD_RAID1) += raid1.o -obj-$(CONFIG_MD_RAID5) += raid5.o xor.o -obj-$(CONFIG_MD_MULTIPATH) += multipath.o -obj-$(CONFIG_BLK_DEV_MD) += md.o -obj-$(CONFIG_BLK_DEV_LVM) += lvm-mod.o +obj-$(CONFIG_MD_LINEAR) += linear.o +obj-$(CONFIG_MD_RAID0) += raid0.o +obj-$(CONFIG_MD_RAID1) += raid1.o +obj-$(CONFIG_MD_RAID5) += raid5.o xor.o +obj-$(CONFIG_MD_MULTIPATH) += multipath.o +obj-$(CONFIG_BLK_DEV_MD) += md.o + +obj-$(CONFIG_BLK_DEV_LVM) += lvm-mod.o + +obj-$(CONFIG_BLK_DEV_DM) += dm-mod.o +obj-$(CONFIG_BLK_DEV_DM_MIRROR) += dm-mirror.o include $(TOPDIR)/Rules.make lvm-mod.o: $(lvm-mod-objs) $(LD) -r -o $@ $(lvm-mod-objs) + +dm-mod.o: $(dm-mod-objs) + $(LD) -r -o $@ $(dm-mod-objs) + +dm-mirror.o: $(dm-mirror-mod-objs) + $(LD) -r -o $@ $(dm-mirror-mod-objs) +
fs/buffer.c +1 -0
@@ -756,6 +756,7 @@ bh->b_list =BUF_CLEAN ; bh->b_end_io = handler; bh->b_private = private; + bh->b_journal_head =NULL ; }static void end_buffer_io_async (struct buffer_head * bh,int uptodate)
fs/jbd/journal.c +5 -5
@@ -1802,9 +1802,9 @@if (buffer_jbd (bh)) {/* Someone did it for us! */ -J_ASSERT_BH (bh, bh->b_private !=NULL ); +J_ASSERT_BH (bh, bh->b_journal_head !=NULL );journal_free_journal_head (jh); - jh = bh->b_private; + jh = bh->b_journal_head; }else {/* * We actually don't need jh_splice_lock when
@@ -1812,7 +1812,7 @@*/ spin_lock (&jh_splice_lock);set_bit (BH_JBD , &bh->b_state); - bh->b_private = jh; + bh->b_journal_head = jh; jh->b_bh = bh;atomic_inc (&bh->b_count);spin_unlock (&jh_splice_lock);
@@ -1821,7 +1821,7 @@ } jh->b_jcount++;spin_unlock (&journal_datalist_lock); -return bh->b_private; +return bh->b_journal_head; }/*
@@ -1854,7 +1854,7 @@J_ASSERT_BH (bh,jh2bh (jh) == bh);BUFFER_TRACE (bh,"remove journal_head" );spin_lock (&jh_splice_lock); - bh->b_private =NULL ; + bh->b_journal_head =NULL ; jh->b_bh =NULL ;/* debug, really */ clear_bit (BH_JBD , &bh->b_state);__brelse (bh);
include/linux/fs.h +1 -1
@@ -265,7 +265,7 @@struct page *b_page;/* the page this bh is mapped to */ void (*b_end_io)(struct buffer_head *bh,int uptodate);/* I/O completion */ void *b_private;/* reserved for b_end_io */ - +void *b_journal_head;/* ext3 journal_heads */ unsigned long b_rsector;/* Real buffer location on disk */ wait_queue_head_t b_wait;
include/linux/jbd.h +1 -1
@@ -311,7 +311,7 @@static inline struct journal_head *bh2jh (struct buffer_head *bh) { -return bh->b_private; +return bh->b_journal_head; }#define HAVE_JOURNAL_CALLBACK_STATUS
include/linux/vmalloc.h +1 -0
@@ -29,6 +29,7 @@extern void vmfree_area_pages (unsigned long address,unsigned long size);extern int vmalloc_area_pages (unsigned long address,unsigned long size,int gfp_mask,pgprot_t prot); +extern void *vcalloc (unsigned long nmemb,unsigned long elem_size);/* * Allocate any pages
kernel/ksyms.c +1 -0
@@ -114,6 +114,7 @@EXPORT_SYMBOL (__vmalloc);EXPORT_SYMBOL (vmap);EXPORT_SYMBOL (vmalloc_to_page); +EXPORT_SYMBOL (vcalloc);EXPORT_SYMBOL (mem_map);EXPORT_SYMBOL (remap_page_range);EXPORT_SYMBOL (max_mapnr);
mm/Makefile +2 -2
@@ -9,12 +9,12 @@ O_TARGET := mm.o -export-objs := shmem.o filemap.o memory.o page_alloc.o +export-objs := shmem.o filemap.o memory.o page_alloc.o mempool.o obj-y := memory.o mmap.o filemap.o mprotect.o mlock.o mremap.o \ vmalloc.o slab.o bootmem.o swap.o vmscan.o page_io.o \ page_alloc.o swap_state.o swapfile.o numa.o oom_kill.o \ - shmem.o + shmem.o mempool.o obj-$(CONFIG_HIGHMEM) += highmem.o
mm/filemap.c +8 -3
@@ -1742,7 +1742,8 @@ }up (&inode->i_sem);up_read (&inode->i_alloc_sem); -UPDATE_ATIME (filp->f_dentry->d_inode); +if (!S_ISBLK (inode->i_mode)) +UPDATE_ATIME (filp->f_dentry->d_inode); goto out; } }
@@ -3120,8 +3121,12 @@ goto out;remove_suid (inode); - inode->i_ctime = inode->i_mtime =CURRENT_TIME ; -mark_inode_dirty_sync (inode); + +/* Don't update times for block devices using O_DIRECT */ +if (!(file->f_flags &O_DIRECT ) || !S_ISBLK (inode->i_mode)) { + inode->i_ctime = inode->i_mtime =CURRENT_TIME ; +mark_inode_dirty_sync (inode); + } do { unsigned long index, offset;
mm/vmalloc.c +19 -0
@@ -374,3 +374,22 @@read_unlock (&vmlist_lock);return buf - buf_start; } + +void *vcalloc (unsigned long nmemb,unsigned long elem_size) +{ +unsigned long size; +void *addr; + +/* +* Check that we're not going to overflow. +*/ +if (nmemb > (ULONG_MAX / elem_size)) +return NULL ; + + size = nmemb * elem_size; + addr =vmalloc (size); +if (addr) +memset (addr,0 , size); + +return addr; +}
arch/mips64/kernel/ioctl32.c.rej +16 -0
@@ -0,0 +1,16 @@ +*************** +*** 33,38 **** + #include <linux/auto_fs.h> + #include <linux/ext2_fs.h> + #include <linux/raid/md_u.h> + + #include <scsi/scsi.h> + #undef __KERNEL__ /* This file was born to be ugly ... */ +--- 33,39 ---- + #include <linux/auto_fs.h> + #include <linux/ext2_fs.h> + #include <linux/raid/md_u.h> ++ #include <linux/dm-ioctl.h> + + #include <scsi/scsi.h> + #undef __KERNEL__ /* This file was born to be ugly ... */
arch/s390x/kernel/ioctl32.c.rej +45 -0
45 lines not on this page · raw message
drivers/md/dm-daemon.c +113 -0
113 lines not on this page · raw message
drivers/md/dm-daemon.h +29 -0
@@ -0,0 +1,29 @@ +/* +* Copyright (C) 2003 Sistina Software +* +* This file is released under the LGPL. +*/ + +#ifndef DM_DAEMON_H +#define DM_DAEMON_H + +#include <asm/atomic.h> +#include <asm/semaphore.h> + +struct dm_daemon { +void (*fn)(void ); +char name[16 ]; +atomic_t please_die; +struct semaphore start_lock; +struct semaphore run_lock; + +atomic_t woken; +wait_queue_head_t job_queue; +}; + +int dm_daemon_start (struct dm_daemon *dd,const char *name,void (*fn)(void )); +void dm_daemon_stop (struct dm_daemon *dd); +void dm_daemon_wake (struct dm_daemon *dd); +int dm_daemon_running (struct dm_daemon *dd); + +#endif
drivers/md/dm-exception-store.c +675 -0
675 lines not on this page · raw message
drivers/md/dm-io.c +344 -0
344 lines not on this page · raw message
drivers/md/dm-io.h +86 -0
86 lines not on this page · raw message
drivers/md/dm-ioctl.c +1272 -0
1,272 lines not on this page · raw message
drivers/md/dm-linear.c +123 -0
25 lines not on this page · raw message
drivers/md/dm-log.c +302 -0
302 lines not on this page · raw message
drivers/md/dm-log.h +112 -0
112 lines not on this page · raw message
drivers/md/dm-raid1.c +1297 -0
1,297 lines not on this page · raw message
drivers/md/dm-snapshot.c +1235 -0
1,235 lines not on this page · raw message
drivers/md/dm-snapshot.h +158 -0
158 lines not on this page · raw message
drivers/md/dm-stripe.c +258 -0
258 lines not on this page · raw message
drivers/md/dm-table.c +687 -0
687 lines not on this page · raw message
drivers/md/dm-target.c +188 -0
188 lines not on this page · raw message
drivers/md/dm.c +1115 -0
1,115 lines not on this page · raw message
drivers/md/dm.h +175 -0
175 lines not on this page · raw message
drivers/md/kcopyd.c +650 -0
650 lines not on this page · raw message
drivers/md/kcopyd.h +47 -0
47 lines not on this page · raw message
include/linux/device-mapper.h +104 -0
104 lines not on this page · raw message
include/linux/dm-ioctl.h +237 -0
237 lines not on this page · raw message
include/linux/mempool.h +31 -0
Lines of this file are not shown. View the raw message.
mm/filemap.c.rej +21 -0
Lines of this file are not shown. View the raw message.
mm/mempool.c +299 -0
299 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Only every other metadata area was being read when loading a snapshot! [Kevin Corry]
drivers/md/dm-exception-store.c +0 -2
Lines of this file are not shown. View the raw message.
arch/mips64/kernel/ioctl32.c.rej +0 -16
Lines of this file are not shown. View the raw message.
arch/s390x/kernel/ioctl32.c.rej +0 -45
45 lines not on this page · raw message
mm/filemap.c.rej +0 -21
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Don't initialise static variables to zero/NULL.
drivers/md/kcopyd.c +2 -2
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Change resume/suspend to do_resume/do_suspend to avoid name clash.
drivers/md/dm-ioctl.c +4 -4
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Hello all,
The current version of the VFS locking patch adds a new semaphore to fs/super.c. This is used to make sure a filesystem does not get mounted on a logical volume while a snapshot is being taken. It also results in all mounts on the system being serialized, and isn't in line with the VFS locking scheme in general.
I've been meaning to fix it forever, here's an updated version that adds a super with s->s_dev set to the source volume if nothing is currently mounted on the source volume. This allows me to use the s_umount semaphore in the super block to keep things safe, which is cleaner overall.
The other benefit over the existing patch is this one has zero footprint outside the lockfs calls. You're only running new code if you take a snapshot.
I've done some testing here, but wanted to let LVM people review it before going further. Patch is below against 2.4.21-rc6.
This provides zero new functionality over the existing VFS locking patch, and is experimental. Do not apply this on production servers, and do not apply unless you want to help test.
-chris
===== drivers/md/lvm.c 1.19 vs edited =====
drivers/md/dm-snapshot.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/md/lvm.c +0 -9
Lines of this file are not shown. View the raw message.
fs/buffer.c +28 -0
Lines of this file are not shown. View the raw message.
fs/reiserfs/super.c +1 -1
Lines of this file are not shown. View the raw message.
fs/super.c +138 -0
138 lines not on this page · raw message
include/linux/fs.h +3 -0
Lines of this file are not shown. View the raw message.
kernel/ksyms.c +2 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
missing parts of the previous vfs patch (merge).
drivers/md/dm-snapshot.c +2 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Lift vfs locking to dm_suspend/resume.
drivers/md/dm-snapshot.c +0 -5
Lines of this file are not shown. View the raw message.
drivers/md/dm.c +15 -3
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Correct error message when start a dm-daemon.
drivers/md/dm-daemon.c +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
When multiple load ioctls are issued the reference count on older 'new_tables' wasn't being dropped. [Christophe Saout]
drivers/md/dm-ioctl.c +2 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Stop labelling dm as 'experimental'.
drivers/md/Config.in +2 -4
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Move retrieve_status up so dev_wait() can use it.
drivers/md/dm-ioctl.c +63 -63
126 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
dev_wait was meant to return table status not dev status. [Alasdair Kergon]
drivers/md/dm-ioctl.c +10 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Fix error message when linear targets gets handed more than 2 arguments. [Alasdair Kergon]
drivers/md/dm-linear.c +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Support an arbitrary number of target parameters. [Alasdair Kergon]
drivers/md/dm-table.c +36 -7
43 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Fix VFS patch
fs/buffer.c +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
The ioctl interface always knows how many targets are going to be in the table, so remove the dynamic array sizing code in dm-table.c. This fixes a problem with large tables where the dm_target pointer passed to the target ctr was becoming invalid.
drivers/md/dm-ioctl.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/md/dm-table.c +10 -52
62 lines not on this page · raw message
drivers/md/dm.h +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.
Quoted 3 lines · tugg
Trying to install LVM2 on 2.4.22. (Fedora core 1 with nptl)
For device mapper: did configure followed by make install. There is no patch for 2.4.22 so I assumed that the kernel was already patched (mistake?). LVM and
Mistake
Quoted 1 line
device mapper are already loadable modules, so no need to recompile kernel (correct?). Added script to
/etc/modules.confand reboot. DMESG shows LVM
Incorrect
Quoted 9 lines
version 1.0.5+(22/07/2002) module loaded.
pvscan -h gives me the following:
Logical Volume Manager 1.0.3
Heinz Mauelshagen, Sistina Software 19/02/2002 (IOP 10)Why is it telling me 1.0.3 when DMESG says 1.0.5+?
1.0.5+ is the kernel driver version
1.0.3 is the version of the pvscan proram
Quoted 1 line
After trying all of the above, found patches for 2.4.22 via mailing list archives (2.4.22-dm-1.tar.bz2) and upacked to get directory 2.4.22-dm-1 containing patch files 00001 through 00016 and INDEX. Used cat to create one large patch file (file patches-2.4.22.patch attached) with all the patches (mistake?) and did patch --dry-run -p1
i would try appliyng them one by one.
Quoted 1 line
with this file (only dry run, so nothing applied yet). This indicates some patches will apply, some are already applied, and quite a few will fail (see attached patches-2.4.22.log file). Is this because I installed device mapper before the patches, or do these patches just not fit my system?
2.4.22-dm-1.tar.bz2appliest to vanilla 2.4.22 kernel redhat/fedora kernel has been modified from vanilla
either you are able to massage those patches or you use vanilla or you bug fedora developers to patch their kernel for dm.
Quoted 1 line
Also, HOWTO says I need 1.0.6 or later (I assume this is the driver version, not the library version?) - do I need another kernel patch to do that, is it included in the patches I am trying to apply, or will that install as part of LVM2?
1.0.6 is for lvm 1, redhat lvm1 is heavily modified as well if you devide for a vanilla kernel and want both lvm1 and lvm2 i;d suggest using recent lvm tolls as well.
If you have not the skill to o all this, stay with fedora and wait for them to upgrade
Documentation/Configure.help
Quoted 3 lines
cvs dm 1.0
Documentation/Configure.help +0
-0
NEVER EVER ATTACH A 350K FILE AGAIN!
L>
Signature · 6 lines
Luca Berra -- [email protected] Communication Media & Services S.r.l. /"\ \ / ASCII RIBBON CAMPAIGN X AGAINST HTML MAIL / \
Quoted 9 lines · tugg
Trying to install LVM2 on 2.4.22. (Fedora core 1 with nptl)
Downloaded device mapper (device-mapper-stable.tgz) and LVM2 (LVM2.0- stable.tgz) from sistina.com. Unpacked to device-mapper.1.00.5 and LVM2.2.00.07.
For device mapper: did configure followed by make install. There is no patch for 2.4.22 so I assumed that the kernel was already patched (mistake?).
Device-mapper is not in any vanilla 2.4 kernel. Maybe redhat added it.
Quoted 11 lines
LVM and device mapper are already loadable modules, so no need to recompile kernel (correct?). Added script to
/etc/modules.confand reboot. DMESG shows LVM version 1.0.5+(22/07/2002) module loaded.pvscan -h gives me the following:
Logical Volume Manager 1.0.3
Heinz Mauelshagen, Sistina Software 19/02/2002 (IOP 10)Why is it telling me 1.0.3 when DMESG says 1.0.5+?
pvscan -h tells you the version of the pvscan utility. The kernel log contains the version of LVM in the kernel. In this case, they are not the same. This is nothing to worry about, in general.
Quoted 6 lines
dmsetup --version gives me:
Library version: 1.00.05-ioctl-cvs (2003-09-01) device-mapper: ioctl interface mismatch: kernel(1.0.3), user(4.0.0), cmd(0) Driver version: 1.0.3
Quoted 10 lines
The ioctl interface mismatch message behaves kind of strangely in that it isn't written to std error, i.e. dmsetup --version 1> dmsetup.log 2>&1 doesn't write the message to dmsetup.log. It still appears on the console. Even more bizarrely, if I log in through OpenSSH it doesn't appear in my session - it appears on the physical console (i.e. the monitor connected to the server), and it does this even when no user is logged on!!! It also doesn't appear in a terminal session under X. Is this behaviour 'by design'? I missed the message initially and only found it when I physically went to the server...
This is because the message is generated by the kernel, and your syslog daemon is configured to print whatever type of message that was to the console.
Quoted 4 lines
For LVM:
Did configure and make install. Got the following error message:
Quoted 9 lines
device/dev-io.c: In function `dev_get_size':device/dev-io.c:215: error: `BLKGETSIZE64' undeclared (first use in this function)device/dev-io.c:215: error: (Each undeclared identifier is reported only oncedevice/dev-io.c:215: error: for each function it appears in.) make[1]: *** [device/dev-io.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/usr/LVM/LVM2.2.00.07/lib'
make: *** [lib] Error 2
Something in the sources is incompatible with your kernel.
Quoted 12 lines
Is this caused by the ioctl mismatch or is there something else going on here? If it is a known problem, is there a workaround?
After trying all of the above, found patches for 2.4.22 via mailing list archives (2.4.22-dm-1.tar.bz2) and upacked to get directory 2.4.22-dm-1 containing patch files 00001 through 00016 and INDEX. Used cat to create one large patch file (file patches-2.4.22.patch attached) with all the patches (mistake?) and did patch --dry-run -p1
with this file (only dry run, so nothing applied yet). This indicates some patches will apply, some are already applied, and quite a few will fail (see attached patches-2.4.22.log file). Is this because I installed device mapper before the patches, or do these patches just not fit my system?
Apparently you already have device-mapper in your kernel.
Signature · 2 lines
M�ns Rullg�rd [email protected]