Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

[COMPAT]: Add ext3 ioctl translations.

So things like on-line resizing et al. work.

Based almost entirely upon a patch by Guido G�nther <agx@sigxcpu.org>

Signed-off-by: David S. Miller <davem@davemloft.net>

+36
+36
fs/compat_ioctl.c
··· 49 49 #include <linux/vt_kern.h> 50 50 #include <linux/fb.h> 51 51 #include <linux/ext2_fs.h> 52 + #include <linux/ext3_jbd.h> 53 + #include <linux/ext3_fs.h> 52 54 #include <linux/videodev.h> 53 55 #include <linux/netdevice.h> 54 56 #include <linux/raw.h> ··· 136 134 /* Aiee. Someone does not find a difference between int and long */ 137 135 #define EXT2_IOC32_GETFLAGS _IOR('f', 1, int) 138 136 #define EXT2_IOC32_SETFLAGS _IOW('f', 2, int) 137 + #define EXT3_IOC32_GETVERSION _IOR('f', 3, int) 138 + #define EXT3_IOC32_SETVERSION _IOR('f', 4, int) 139 + #define EXT3_IOC32_GETRSVSZ _IOR('f', 5, int) 140 + #define EXT3_IOC32_SETRSVSZ _IOW('f', 6, int) 141 + #define EXT3_IOC32_GROUP_EXTEND _IOW('f', 7, unsigned int) 142 + #ifdef CONFIG_JBD_DEBUG 143 + #define EXT3_IOC32_WAIT_FOR_READONLY _IOR('f', 99, int) 144 + #endif 145 + 139 146 #define EXT2_IOC32_GETVERSION _IOR('v', 1, int) 140 147 #define EXT2_IOC32_SETVERSION _IOW('v', 2, int) 141 148 ··· 187 176 case EXT2_IOC32_SETFLAGS: cmd = EXT2_IOC_SETFLAGS; break; 188 177 case EXT2_IOC32_GETVERSION: cmd = EXT2_IOC_GETVERSION; break; 189 178 case EXT2_IOC32_SETVERSION: cmd = EXT2_IOC_SETVERSION; break; 179 + } 180 + return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg)); 181 + } 182 + 183 + static int do_ext3_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) 184 + { 185 + /* These are just misnamed, they actually get/put from/to user an int */ 186 + switch (cmd) { 187 + case EXT3_IOC32_GETVERSION: cmd = EXT3_IOC_GETVERSION; break; 188 + case EXT3_IOC32_SETVERSION: cmd = EXT3_IOC_SETVERSION; break; 189 + case EXT3_IOC32_GETRSVSZ: cmd = EXT3_IOC_GETRSVSZ; break; 190 + case EXT3_IOC32_SETRSVSZ: cmd = EXT3_IOC_SETRSVSZ; break; 191 + case EXT3_IOC32_GROUP_EXTEND: cmd = EXT3_IOC_GROUP_EXTEND; break; 192 + #ifdef CONFIG_JBD_DEBUG 193 + case EXT3_IOC32_WAIT_FOR_READONLY: cmd = EXT3_IOC_WAIT_FOR_READONLY; break; 194 + #endif 190 195 } 191 196 return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg)); 192 197 } ··· 3008 2981 HANDLE_IOCTL(EXT2_IOC32_SETFLAGS, do_ext2_ioctl) 3009 2982 HANDLE_IOCTL(EXT2_IOC32_GETVERSION, do_ext2_ioctl) 3010 2983 HANDLE_IOCTL(EXT2_IOC32_SETVERSION, do_ext2_ioctl) 2984 + HANDLE_IOCTL(EXT3_IOC32_GETVERSION, do_ext3_ioctl) 2985 + HANDLE_IOCTL(EXT3_IOC32_SETVERSION, do_ext3_ioctl) 2986 + HANDLE_IOCTL(EXT3_IOC32_GETRSVSZ, do_ext3_ioctl) 2987 + HANDLE_IOCTL(EXT3_IOC32_SETRSVSZ, do_ext3_ioctl) 2988 + HANDLE_IOCTL(EXT3_IOC32_GROUP_EXTEND, do_ext3_ioctl) 2989 + COMPATIBLE_IOCTL(EXT3_IOC_GROUP_ADD) 2990 + #ifdef CONFIG_JBD_DEBUG 2991 + HANDLE_IOCTL(EXT3_IOC32_WAIT_FOR_READONLY, do_ext3_ioctl) 2992 + #endif 3011 2993 HANDLE_IOCTL(VIDIOCGTUNER32, do_video_ioctl) 3012 2994 HANDLE_IOCTL(VIDIOCSTUNER32, do_video_ioctl) 3013 2995 HANDLE_IOCTL(VIDIOCGWIN32, do_video_ioctl)