From: Joe Thornber Update the ioctl32 handlers for the 64-bit architectures to recognize the new Device-Mapper version 4 ioctls. The version 1 ioctls are still there. If/When the version 1 ioctls are removed, these same files will need to be updated again. I have been unable to test this patch yet, since I have not had any luck getting 2.6.0-test2 to compile on my ppc64 box (not a dm-related problem). But the patch is pretty trivial, so I'm pretty confident it will work. If anyone else can test this (on mips64, sparc64, parisc, or x86-64), let me know if you have any problems. [Kevin Corry] /dev/null | 0 arch/sparc64/kernel/ioctl32.c | 16 ++++++++++++++++ include/linux/compat_ioctl.h | 15 +++++++++++++++ 3 files changed, 31 insertions(+) diff -puN -L arch/mips64/kernel/ioctl32.c /dev/null /dev/null diff -puN arch/sparc64/kernel/ioctl32.c~dm-4-64-bit-ioctls arch/sparc64/kernel/ioctl32.c --- 25/arch/sparc64/kernel/ioctl32.c~dm-4-64-bit-ioctls 2003-08-01 02:07:22.000000000 -0700 +++ 25-akpm/arch/sparc64/kernel/ioctl32.c 2003-08-01 02:07:23.000000000 -0700 @@ -1546,6 +1546,21 @@ COMPATIBLE_IOCTL(BNEPCONNDEL) COMPATIBLE_IOCTL(BNEPGETCONNLIST) COMPATIBLE_IOCTL(BNEPGETCONNINFO) /* device-mapper */ +#if defined(CONFIG_DM_IOCTL_V4) +COMPATIBLE_IOCTL(DM_VERSION) +COMPATIBLE_IOCTL(DM_REMOVE_ALL) +COMPATIBLE_IOCTL(DM_LIST_DEVICES) +COMPATIBLE_IOCTL(DM_DEV_CREATE) +COMPATIBLE_IOCTL(DM_DEV_REMOVE) +COMPATIBLE_IOCTL(DM_DEV_RENAME) +COMPATIBLE_IOCTL(DM_DEV_SUSPEND) +COMPATIBLE_IOCTL(DM_DEV_STATUS) +COMPATIBLE_IOCTL(DM_DEV_WAIT) +COMPATIBLE_IOCTL(DM_TABLE_LOAD) +COMPATIBLE_IOCTL(DM_TABLE_CLEAR) +COMPATIBLE_IOCTL(DM_TABLE_DEPS) +COMPATIBLE_IOCTL(DM_TABLE_STATUS) +#else COMPATIBLE_IOCTL(DM_VERSION) COMPATIBLE_IOCTL(DM_REMOVE_ALL) COMPATIBLE_IOCTL(DM_DEV_CREATE) @@ -1557,6 +1572,7 @@ COMPATIBLE_IOCTL(DM_DEV_DEPS) COMPATIBLE_IOCTL(DM_DEV_STATUS) COMPATIBLE_IOCTL(DM_TARGET_STATUS) COMPATIBLE_IOCTL(DM_TARGET_WAIT) +#endif /* And these ioctls need translation */ HANDLE_IOCTL(HDIO_GETGEO_BIG_RAW, hdio_getgeo_big) /* NCPFS */ diff -puN include/linux/compat_ioctl.h~dm-4-64-bit-ioctls include/linux/compat_ioctl.h --- 25/include/linux/compat_ioctl.h~dm-4-64-bit-ioctls 2003-08-01 02:07:22.000000000 -0700 +++ 25-akpm/include/linux/compat_ioctl.h 2003-08-01 02:07:23.000000000 -0700 @@ -119,6 +119,20 @@ COMPATIBLE_IOCTL(STOP_ARRAY_RO) COMPATIBLE_IOCTL(RESTART_ARRAY_RW) #ifdef CONFIG_BLK_DEV_DM /* DM */ +#ifdef CONFIG_DM_IOCTL_V4 +COMPATIBLE_IOCTL(DM_VERSION) +COMPATIBLE_IOCTL(DM_LIST_DEVICES) +COMPATIBLE_IOCTL(DM_DEV_CREATE) +COMPATIBLE_IOCTL(DM_DEV_REMOVE) +COMPATIBLE_IOCTL(DM_DEV_RENAME) +COMPATIBLE_IOCTL(DM_DEV_SUSPEND) +COMPATIBLE_IOCTL(DM_DEV_STATUS) +COMPATIBLE_IOCTL(DM_DEV_WAIT) +COMPATIBLE_IOCTL(DM_TABLE_LOAD) +COMPATIBLE_IOCTL(DM_TABLE_CLEAR) +COMPATIBLE_IOCTL(DM_TABLE_DEPS) +COMPATIBLE_IOCTL(DM_TABLE_STATUS) +#else COMPATIBLE_IOCTL(DM_VERSION) COMPATIBLE_IOCTL(DM_REMOVE_ALL) COMPATIBLE_IOCTL(DM_DEV_CREATE) @@ -131,6 +145,7 @@ COMPATIBLE_IOCTL(DM_DEV_STATUS) COMPATIBLE_IOCTL(DM_TARGET_STATUS) COMPATIBLE_IOCTL(DM_TARGET_WAIT) #endif +#endif /* Big K */ COMPATIBLE_IOCTL(PIO_FONT) COMPATIBLE_IOCTL(GIO_FONT) _