diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-17 17:26:56 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-17 17:26:56 -0800 | 
| commit | 811803c5572b296e0031e0099203de90d77c7bcf (patch) | |
| tree | d2cd86c706af9e6ad47e2dda6b24df0d93f6f98f | |
| parent | 42f9cabebe5915351bdba2f6f7f80e47c68e6ac8 (diff) | |
| parent | d5ea655376c471731845735dfe9a0bdfbe4492e9 (diff) | |
| download | olio-linux-3.10-811803c5572b296e0031e0099203de90d77c7bcf.tar.xz olio-linux-3.10-811803c5572b296e0031e0099203de90d77c7bcf.zip  | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
| -rw-r--r-- | fs/compat_ioctl.c | 36 | 
1 files changed, 36 insertions, 0 deletions
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index f07e60f9e10..991c00de5c4 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -49,6 +49,8 @@  #include <linux/vt_kern.h>  #include <linux/fb.h>  #include <linux/ext2_fs.h> +#include <linux/ext3_jbd.h> +#include <linux/ext3_fs.h>  #include <linux/videodev.h>  #include <linux/netdevice.h>  #include <linux/raw.h> @@ -134,6 +136,15 @@  /* Aiee. Someone does not find a difference between int and long */  #define EXT2_IOC32_GETFLAGS               _IOR('f', 1, int)  #define EXT2_IOC32_SETFLAGS               _IOW('f', 2, int) +#define EXT3_IOC32_GETVERSION             _IOR('f', 3, int) +#define EXT3_IOC32_SETVERSION             _IOR('f', 4, int) +#define EXT3_IOC32_GETRSVSZ               _IOR('f', 5, int) +#define EXT3_IOC32_SETRSVSZ               _IOW('f', 6, int) +#define EXT3_IOC32_GROUP_EXTEND           _IOW('f', 7, unsigned int) +#ifdef CONFIG_JBD_DEBUG +#define EXT3_IOC32_WAIT_FOR_READONLY      _IOR('f', 99, int) +#endif +  #define EXT2_IOC32_GETVERSION             _IOR('v', 1, int)  #define EXT2_IOC32_SETVERSION             _IOW('v', 2, int) @@ -180,6 +191,22 @@ static int do_ext2_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)  	return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg));  } +static int do_ext3_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ +	/* These are just misnamed, they actually get/put from/to user an int */ +	switch (cmd) { +	case EXT3_IOC32_GETVERSION: cmd = EXT3_IOC_GETVERSION; break; +	case EXT3_IOC32_SETVERSION: cmd = EXT3_IOC_SETVERSION; break; +	case EXT3_IOC32_GETRSVSZ: cmd = EXT3_IOC_GETRSVSZ; break; +	case EXT3_IOC32_SETRSVSZ: cmd = EXT3_IOC_SETRSVSZ; break; +	case EXT3_IOC32_GROUP_EXTEND: cmd = EXT3_IOC_GROUP_EXTEND; break; +#ifdef CONFIG_JBD_DEBUG +	case EXT3_IOC32_WAIT_FOR_READONLY: cmd = EXT3_IOC_WAIT_FOR_READONLY; break; +#endif +	} +	return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg)); +} +  struct video_tuner32 {  	compat_int_t tuner;  	char name[32]; @@ -2981,6 +3008,15 @@ HANDLE_IOCTL(EXT2_IOC32_GETFLAGS, do_ext2_ioctl)  HANDLE_IOCTL(EXT2_IOC32_SETFLAGS, do_ext2_ioctl)  HANDLE_IOCTL(EXT2_IOC32_GETVERSION, do_ext2_ioctl)  HANDLE_IOCTL(EXT2_IOC32_SETVERSION, do_ext2_ioctl) +HANDLE_IOCTL(EXT3_IOC32_GETVERSION, do_ext3_ioctl) +HANDLE_IOCTL(EXT3_IOC32_SETVERSION, do_ext3_ioctl) +HANDLE_IOCTL(EXT3_IOC32_GETRSVSZ, do_ext3_ioctl) +HANDLE_IOCTL(EXT3_IOC32_SETRSVSZ, do_ext3_ioctl) +HANDLE_IOCTL(EXT3_IOC32_GROUP_EXTEND, do_ext3_ioctl) +COMPATIBLE_IOCTL(EXT3_IOC_GROUP_ADD) +#ifdef CONFIG_JBD_DEBUG +HANDLE_IOCTL(EXT3_IOC32_WAIT_FOR_READONLY, do_ext3_ioctl) +#endif  HANDLE_IOCTL(VIDIOCGTUNER32, do_video_ioctl)  HANDLE_IOCTL(VIDIOCSTUNER32, do_video_ioctl)  HANDLE_IOCTL(VIDIOCGWIN32, do_video_ioctl)  |