Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c0bb97c authored by Lukas Czerner's avatar Lukas Czerner Committed by Theodore Ts'o
Browse files

gfs2: use ->invalidatepage() length argument



->invalidatepage() aop now accepts range to invalidate so we can make
use of it in gfs2_invalidatepage().

Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
Acked-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
Cc: cluster-devel@redhat.com
parent 569d39fc
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -948,24 +948,29 @@ static void gfs2_invalidatepage(struct page *page, unsigned int offset,
				unsigned int length)
{
	struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host);
	unsigned int stop = offset + length;
	int partial_page = (offset || length < PAGE_CACHE_SIZE);
	struct buffer_head *bh, *head;
	unsigned long pos = 0;

	BUG_ON(!PageLocked(page));
	if (offset == 0)
	if (!partial_page)
		ClearPageChecked(page);
	if (!page_has_buffers(page))
		goto out;

	bh = head = page_buffers(page);
	do {
		if (pos + bh->b_size > stop)
			return;

		if (offset <= pos)
			gfs2_discard(sdp, bh);
		pos += bh->b_size;
		bh = bh->b_this_page;
	} while (bh != head);
out:
	if (offset == 0)
	if (!partial_page)
		try_to_release_page(page, 0);
}