On Thu, Oct 03, 2019 at 01:18:55PM -0700, Davidlohr Bueso wrote:
> +++ b/mm/nommu.c
> @@ -1793,7 +1793,7 @@ int nommu_shrink_inode_mappings(struct inode *inode, 
> size_t size,
>       size_t r_size, r_top;
>  
>       low = newsize >> PAGE_SHIFT;
> -     high = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
> +     high = (size + PAGE_SIZE) >> PAGE_SHIFT;

Uhh ... are you sure about this?  size is in bytes here, and we're rounding
up to the next page size.  So if size is [1-4096], then we add on 4095 and get
the answer 1.  With your patch, if size is [0-4095], we get the answer 1.
I think you meant:

        high = ((size + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1;

Reply via email to