On Mon, Jul 12, 2021 at 07:22:43PM +0000, Elliott, Robert (Servers) wrote: > static int put_u64(u64 __user *argp, u64 val) > { > return put_user(val, argp); > } > > > diff --git a/block/ioctl.c b/block/ioctl.c > > index 24beec9ca9c9..0c3a4a53fa11 100644 > > --- a/block/ioctl.c > > +++ b/block/ioctl.c > > @@ -469,6 +469,8 @@ static int blkdev_common_ioctl(struct block_device > > *bdev, fmode_t mode, > > BLKDEV_DISCARD_SECURE); > ... > > > + case BLKGETDISKSEQ: > > + return put_u64(argp, bdev->bd_disk->diskseq); > > How does that work on a system in which int is 32 bits? Why would it not work? put_user is a magic macro that works on all scalar value.