Browse Source

ioctl_compat: handle FITRIM

The FITRIM ioctl has the same arguments on 32-bit and 64-bit
architectures, so we can add it to the list of compatible ioctls and
drop it from compat_ioctl method of various filesystems.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Ted Ts'o <tytso@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Mikulas Patocka 10 years ago
parent
commit
9abea2d64c
6 changed files with 1 additions and 7 deletions
  1. 1 0
      fs/compat_ioctl.c
  2. 0 1
      fs/ecryptfs/file.c
  3. 0 1
      fs/ext4/ioctl.c
  4. 0 3
      fs/jfs/ioctl.c
  5. 0 1
      fs/nilfs2/ioctl.c
  6. 0 1
      fs/ocfs2/ioctl.c

+ 1 - 0
fs/compat_ioctl.c

@@ -896,6 +896,7 @@ COMPATIBLE_IOCTL(FIGETBSZ)
 /* 'X' - originally XFS but some now in the VFS */
 /* 'X' - originally XFS but some now in the VFS */
 COMPATIBLE_IOCTL(FIFREEZE)
 COMPATIBLE_IOCTL(FIFREEZE)
 COMPATIBLE_IOCTL(FITHAW)
 COMPATIBLE_IOCTL(FITHAW)
+COMPATIBLE_IOCTL(FITRIM)
 COMPATIBLE_IOCTL(KDGETKEYCODE)
 COMPATIBLE_IOCTL(KDGETKEYCODE)
 COMPATIBLE_IOCTL(KDSETKEYCODE)
 COMPATIBLE_IOCTL(KDSETKEYCODE)
 COMPATIBLE_IOCTL(KDGKBTYPE)
 COMPATIBLE_IOCTL(KDGKBTYPE)

+ 0 - 1
fs/ecryptfs/file.c

@@ -325,7 +325,6 @@ ecryptfs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 		return rc;
 		return rc;
 
 
 	switch (cmd) {
 	switch (cmd) {
-	case FITRIM:
 	case FS_IOC32_GETFLAGS:
 	case FS_IOC32_GETFLAGS:
 	case FS_IOC32_SETFLAGS:
 	case FS_IOC32_SETFLAGS:
 	case FS_IOC32_GETVERSION:
 	case FS_IOC32_GETVERSION:

+ 0 - 1
fs/ext4/ioctl.c

@@ -755,7 +755,6 @@ long ext4_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 		return err;
 		return err;
 	}
 	}
 	case EXT4_IOC_MOVE_EXT:
 	case EXT4_IOC_MOVE_EXT:
-	case FITRIM:
 	case EXT4_IOC_RESIZE_FS:
 	case EXT4_IOC_RESIZE_FS:
 	case EXT4_IOC_PRECACHE_EXTENTS:
 	case EXT4_IOC_PRECACHE_EXTENTS:
 	case EXT4_IOC_SET_ENCRYPTION_POLICY:
 	case EXT4_IOC_SET_ENCRYPTION_POLICY:

+ 0 - 3
fs/jfs/ioctl.c

@@ -180,9 +180,6 @@ long jfs_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 	case JFS_IOC_SETFLAGS32:
 	case JFS_IOC_SETFLAGS32:
 		cmd = JFS_IOC_SETFLAGS;
 		cmd = JFS_IOC_SETFLAGS;
 		break;
 		break;
-	case FITRIM:
-		cmd = FITRIM;
-		break;
 	}
 	}
 	return jfs_ioctl(filp, cmd, arg);
 	return jfs_ioctl(filp, cmd, arg);
 }
 }

+ 0 - 1
fs/nilfs2/ioctl.c

@@ -1369,7 +1369,6 @@ long nilfs_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 	case NILFS_IOCTL_SYNC:
 	case NILFS_IOCTL_SYNC:
 	case NILFS_IOCTL_RESIZE:
 	case NILFS_IOCTL_RESIZE:
 	case NILFS_IOCTL_SET_ALLOC_RANGE:
 	case NILFS_IOCTL_SET_ALLOC_RANGE:
-	case FITRIM:
 		break;
 		break;
 	default:
 	default:
 		return -ENOIOCTLCMD;
 		return -ENOIOCTLCMD;

+ 0 - 1
fs/ocfs2/ioctl.c

@@ -980,7 +980,6 @@ long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg)
 	case OCFS2_IOC_GROUP_EXTEND:
 	case OCFS2_IOC_GROUP_EXTEND:
 	case OCFS2_IOC_GROUP_ADD:
 	case OCFS2_IOC_GROUP_ADD:
 	case OCFS2_IOC_GROUP_ADD64:
 	case OCFS2_IOC_GROUP_ADD64:
-	case FITRIM:
 		break;
 		break;
 	case OCFS2_IOC_REFLINK:
 	case OCFS2_IOC_REFLINK:
 		if (copy_from_user(&args, argp, sizeof(args)))
 		if (copy_from_user(&args, argp, sizeof(args)))