Commit cbb60951 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: jdata writepage fix



The ->writepage() and ->writepages() operations are supposed to write
entire pages.  However, on filesystems with a block size smaller than
PAGE_SIZE, __gfs2_jdata_writepage() only adds the first block to the
current transaction instead of adding the entire page.  Fix that.

Fixes: 18ec7d5c ("[GFS2] Make journaled data files identical to normal files on disk")
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent b66f723b
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -127,7 +127,6 @@ static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *w
{
	struct inode *inode = page->mapping->host;
	struct gfs2_inode *ip = GFS2_I(inode);
	struct gfs2_sbd *sdp = GFS2_SB(inode);

	if (PageChecked(page)) {
		ClearPageChecked(page);
@@ -135,7 +134,7 @@ static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *w
			create_empty_buffers(page, inode->i_sb->s_blocksize,
					     BIT(BH_Dirty)|BIT(BH_Uptodate));
		}
		gfs2_page_add_databufs(ip, page, 0, sdp->sd_vfs->s_blocksize);
		gfs2_page_add_databufs(ip, page, 0, PAGE_SIZE);
	}
	return gfs2_write_jdata_page(page, wbc);
}