Thread (26 messages) 26 messages, 4 authors, 2013-02-22

Re: [PATCH v2 10/18] mm: teach truncate_inode_pages_range() to handle non page aligned ranges

From: Lukáš Czerner <hidden>
Date: 2013-02-21 08:33:56
Also in: linux-fsdevel, linux-mm, lkml

On Fri, 8 Feb 2013, Lukáš Czerner wrote:
Date: Fri, 8 Feb 2013 10:08:05 +0100 (CET)
From: Lukáš Czerner <redacted>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Lukas Czerner <redacted>, linux-mm@kvack.org,
    linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
    linux-ext4@vger.kernel.org, Hugh Dickins [off-list ref]
Subject: Re: [PATCH v2 10/18] mm: teach truncate_inode_pages_range() to handle
     non page aligned ranges
..snip..
quoted
quoted
+	/*
+	 * 'start' and 'end' always covers the range of pages to be fully
+	 * truncated. Partial pages are covered with 'partial_start' at the
+	 * start of the range and 'partial_end' at the end of the range.
+	 * Note that 'end' is exclusive while 'lend' is inclusive.
+	 */
That helped ;)  So the bytes to be truncated are

(start*PAGE_SIZE + partial_start) -> (end*PAGE_SIZE + partial_end) - 1

yes?
The start of the range is not right, because 'start' and 'end'
covers pages to be _fully_ truncated. See the while cycle and 
then 'if (partial_start)' condition where we search for the
page (start - 1) and do_invalidate within that page.

So it should be like this:


(start*PAGE_SIZE - partial_start*(PAGE_SIZE - partial_start) ->
(end*PAGE_END + partial_end) - 1


assuming that you want the range to be inclusive on both sides.

-Lukas
Hi Andrew,

what's the status of the patch set ? Do you have any more comments
or questions ? Can we get this in in this merge window ?

Thanks!
-Lukas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help