[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180702075543.k7y73aj3s3gp4ptz@quack2.suse.cz>
Date: Mon, 2 Jul 2018 09:55:43 +0200
From: Jan Kara <jack@...e.cz>
To: Huaisheng Ye <yehs2007@...o.com>
Cc: "\"Al Viro\"" <viro@...IV.linux.org.uk>, dan.j.williams@...el.com,
dave.jiang@...el.com, willy@...radead.org,
ross.zwisler@...ux.intel.com, vishal.l.verma@...el.com,
jack@...e.com, chengnt@...ovo.com, linux-nvdimm@...ts.01.org,
linux-kernel@...r.kernel.org, linux-ext4@...r.kernel.org,
"\"Huaisheng Ye\"" <yehs1@...ovo.com>
Subject: Re: [PATCH 2/3] fs/ext2/inode: Fix a type cast error for fsdax
On Mon 02-07-18 14:23:42, Huaisheng Ye wrote:
> ---- On Mon, 02 Jul 2018 03:26:00 +0800 Al Viro <viro@...IV.linux.org.uk> wrote ----
> > On Sun, Jul 01, 2018 at 02:18:47PM +0800, Huaisheng Ye wrote:
> > > From: Huaisheng Ye <yehs1@...ovo.com>
> > >
> > > The type of offset within struct iomap is loff_t, which represents
> > > file offset of mapping.
> > >
> > > In ext2_iomap_begin, iomap->offset shall be given a type cast as
> > > loff_t instead of u64.
> >
> > Why is it an error? loff_t is uniformly typedefed to long long.
> > In which case the second variant is different from the first one
> > *and* does not step into nasal demon territory?
>
> Sorry for my inaccuracy.
> The type of iomap->offset is loff_t, is it better to cast first_block
> to loff_t, then do the left shift operation?
I think what Al meant is that in the kernel loff_t is 64-bit anyway and
furthermore it is signed which means most people have to look up C standard
to remember how right shift is (un)defined if it would overflow ;). So this
does not really make the code any more readable. Rather on contrary...
Honza
>
> >
> > > - iomap->offset = (u64)first_block << blkbits;
> > > + iomap->offset = (loff_t)first_block << blkbits;
> >
>
> ---
> Cheers,
> Huaisheng
>
>
--
Jan Kara <jack@...e.com>
SUSE Labs, CR
Powered by blists - more mailing lists