Invalidate part or all of a buffer-backed page
void block_invalidatepage(struct page * page, unsigned int offset, unsigned int length);
page
the page which is affected
offset
start of the range to invalidate
length
length of the range to invalidate
block_invalidatepage is called when all or part of the page has become invalidated by a truncate operation.
block_invalidatepage does not have to release all buffers, but it must ensure that no dirty buffer is left outside offset and that no I/O is underway against any of the blocks which are outside the truncation point. Because the caller is about to free (and possibly reuse) those blocks on-disk.