Re: [PATCH v4 3/5] block: add ioctl to read the disk sequence number

From: Christoph Hellwig
Date: Tue Jul 13 2021 - 02:00:12 EST


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.