On Tue, 5 Feb 2013 10:12:03 +0100 Lukas Czerner <lczerner@xxxxxxxxxx> wrote: > This commit changes truncate_inode_pages_range() so it can handle non > page aligned regions of the truncate. Currently we can hit BUG_ON when > the end of the range is not page aligned, but we can handle unaligned > start of the range. > > Being able to handle non page aligned regions of the page can help file > system punch_hole implementations and save some work, because once we're > holding the page we might as well deal with it right away. > > In previous commits we've changed ->invalidatepage() prototype to accept > 'length' argument to be able to specify range to invalidate. No we can > use that new ability in truncate_inode_pages_range(). > > ... > > + /* > + * '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? -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html