3.16.52-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Omar Sandoval <osandov@xxxxxx> commit bea7eafdbda3ba1d4b2ccb9cca829eefb7989bb9 upstream. fs_info->super_copy->{node,sector}size are little-endian, but the ioctl should return the values in native endianness. Use the cached values in btrfs_fs_info instead. Found with sparse. Fixes: 80a773fbfc2d ("btrfs: retrieve more info from FS_INFO ioctl") Signed-off-by: Omar Sandoval <osandov@xxxxxx> Reviewed-by: David Sterba <dsterba@xxxxxxxx> Signed-off-by: David Sterba <dsterba@xxxxxxxx> [bwh: Backported to 3.16: native nodesize and sectorsize are members of struct btrfs_root, not struct btrfs_fs_info] Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- fs/btrfs/ioctl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -2745,9 +2745,9 @@ static long btrfs_ioctl_fs_info(struct b } mutex_unlock(&fs_devices->device_list_mutex); - fi_args->nodesize = root->fs_info->super_copy->nodesize; - fi_args->sectorsize = root->fs_info->super_copy->sectorsize; - fi_args->clone_alignment = root->fs_info->super_copy->sectorsize; + fi_args->nodesize = root->nodesize; + fi_args->sectorsize = root->sectorsize; + fi_args->clone_alignment = root->sectorsize; if (copy_to_user(arg, fi_args, sizeof(*fi_args))) ret = -EFAULT;