On Mon, Jul 13, 2020 at 02:28:36PM +0000, Johannes Thumshirn wrote: > On 13/07/2020 16:27, David Sterba wrote: > > On Mon, Jul 13, 2020 at 09:28:58PM +0900, Johannes Thumshirn wrote: > >> --- a/fs/btrfs/ioctl.c > >> +++ b/fs/btrfs/ioctl.c > >> @@ -3217,11 +3217,15 @@ static long btrfs_ioctl_fs_info(struct btrfs_fs_info *fs_info, > >> struct btrfs_ioctl_fs_info_args *fi_args; > >> struct btrfs_device *device; > >> struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; > >> + u32 flags_in; > > > > u64 here too, I'll fix it. > > Uh, surprised why GCC didn't warn me about the truncation The right warning for that is -Wconversion but it's off by default. Integer type truncations are common becasue we know what we're doing (except for the bugs). fs/btrfs/ioctl.c: In function ‘btrfs_ioctl_fs_info’: fs/btrfs/ioctl.c:3228:13: warning: conversion from ‘__u64’ {aka ‘long long unsigned int’} to ‘u32’ {aka ‘unsigned int’} may change value [-Wconversion] 3228 | flags_in = fi_args->flags; Otherwise: $ make ccflags-y=-Wconversion fs/btrfs/ioctl.o 2>&1 | grep warning: | wc -l 533 Most of them are from included headers.