Skip to contentSkip to conversation

btrfs: silence sparse warnings in ioctl.c

PATCH In review Dan Carpenter 1 participant 1 message May 29, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 9/11 btrfs: silence sparse warnings in ioctl.c

I fixed the following sparse warnings:

fs/btrfs/ioctl.c:1936:22: warning: cast removes address space of expression fs/btrfs/ioctl.c:1939:26: warning: incorrect type in argument 1 (different address spaces)
fs/btrfs/ioctl.c:1939:26: expected void [noderef] <asn:1>*to
fs/btrfs/ioctl.c:1939:26: got struct btrfs_ioctl_space_info *[assigned] user_dest
fs/btrfs/ioctl.c:1872:6: warning: symbol 'btrfs_ioctl_space_info' was not declared. Should it be static?

Also I noticed that a related cast of "arg" could be removed so I did that.

fs/btrfs/ioctl.c +4 -6
index 4dbaf89..a945a66 100644
@@ -1869,21 +1869,19 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
 	return 0;
 }
 
-long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
 {
 	struct btrfs_ioctl_space_args space_args;
 	struct btrfs_ioctl_space_info space;
 	struct btrfs_ioctl_space_info *dest;
 	struct btrfs_ioctl_space_info *dest_orig;
-	struct btrfs_ioctl_space_info *user_dest;
+	struct btrfs_ioctl_space_info __user *user_dest;
 	struct btrfs_space_info *info;
 	int alloc_size;
 	int ret = 0;
 	int slot_count = 0;
 
-	if (copy_from_user(&space_args,
-			   (struct btrfs_ioctl_space_args __user *)arg,
-			   sizeof(space_args)))
+	if (copy_from_user(&space_args, arg, sizeof(space_args)))
 		return -EFAULT;
 
 	/* first we count slots */
@@ -1933,7 +1931,7 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
 	}
 	rcu_read_unlock();
 
-	user_dest = (struct btrfs_ioctl_space_info *)
+	user_dest = (struct btrfs_ioctl_space_info __user *)
 		(arg + sizeof(struct btrfs_ioctl_space_args));
 
 	if (copy_to_user(user_dest, dest_orig, alloc_size))