Skip to content

Commit dc480fe

Browse files
author
Andreas Gruenbacher
committed
gfs2: Fix iomap buffered write support for journaled files
Commit 64bc06b broke buffered writes to journaled files (chattr +j): we'll try to journal the buffer heads of the page being written to in gfs2_iomap_journaled_page_done. However, the iomap code no longer creates buffer heads, so we'll BUG() in gfs2_page_add_databufs. Fix that by creating buffer heads ourself when needed. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 parent 0854ba5 commit dc480fe

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

fs/gfs2/bmap.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,10 @@ static void gfs2_iomap_journaled_page_done(struct inode *inode, loff_t pos,
975975
{
976976
struct gfs2_inode *ip = GFS2_I(inode);
977977

978+
if (!page_has_buffers(page)) {
979+
create_empty_buffers(page, inode->i_sb->s_blocksize,
980+
(1 << BH_Dirty)|(1 << BH_Uptodate));
981+
}
978982
gfs2_page_add_databufs(ip, page, offset_in_page(pos), copied);
979983
}
980984

0 commit comments

Comments
 (0)