Re: [PATCH v3 17/18] ext4: make punch hole code path work withbigalloc

From: Zheng Liu
Date: Wed Apr 24 2013 - 07:11:47 EST


On Wed, Apr 24, 2013 at 01:08:17PM +0200, LukÃÅ Czerner wrote:
> On Tue, 23 Apr 2013, Zheng Liu wrote:
[snip]
> > > > Also update respective tracepoints to use signed long long type for
> > > > partial_cluster.
> > > The patch looks OK. You can add:
> > > Reviewed-by: Jan Kara <jack@xxxxxxx>
> > >
> > > Just a minor nit - sometimes you use 'signed long long', sometimes 'long
> > > long int', sometimes just 'long long'. In kernel we tend to always use just
> > > 'long long' so it would be good to clean that up.
> >
> > Another question is that in patch 01/18 invalidatepage signature is
> > changed from
> > int (*invalidatepage) (struct page *, unsigned long);
> > to
> > void (*invalidatepage) (struct page *, unsigned int, unsigned int);
> >
> > The argument type is changed from 'unsigned long' to 'unsigned int'. My
> > question is why we need to change it.
> >
> > Thanks,
> > - Zheng
> >
>
> Hi Zheng,
>
> this was changed on Hugh Dickins request because it makes it clearer
> that those args are indeed intended to be offsets within a page
> (0..PAGE_CACHE_SIZE).
>
> Even though PAGE_CACHE_SIZE can be defined as unsigned long, this is
> only for convenience. Here is quote from Hugh:
>
> "
> They would be defined as unsigned long so that they can be used in
> masks like ~(PAGE_SIZE - 1), and behave as expected on addresses,
> without needing casts to be added all over.
>
> We do not (currently!) expect PAGE_SIZE or PAGE_CACHE_SIZE to grow
> beyond an unsigned int - but indeed they can be larger than what's
> held in an unsigned short (look no further than ia64 or ppc64).
>
> For more reassurance, see include/linux/highmem.h, which declares
> zero_user_segments() and others: unsigned int (well, unsigned with
> the int implicit) for offsets within a page.
>
> Hugh
> "
>
> I should probably mention that in the description.

Ah, thanks for your explanation. I must miss something. :-(

Regards,
- Zheng
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/