Skip to content

Commit

Permalink
Merge tag 'gfs2-v5.3-rc2.fixes' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/kernel/git/gfs2/linux-gfs2

Pull gfs2 fix from Andreas Gruenbacher:
 "Fix gfs2 cluster coherency bug"

* tag 'gfs2-v5.3-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
  gfs2: Inode dirtying fix
  • Loading branch information
torvalds committed Aug 2, 2019
2 parents 755f1fe + 706cb54 commit 97b00af
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions fs/gfs2/bmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -1002,11 +1002,16 @@ static void gfs2_iomap_page_done(struct inode *inode, loff_t pos,
unsigned copied, struct page *page,
struct iomap *iomap)
{
struct gfs2_trans *tr = current->journal_info;
struct gfs2_inode *ip = GFS2_I(inode);
struct gfs2_sbd *sdp = GFS2_SB(inode);

if (page && !gfs2_is_stuffed(ip))
gfs2_page_add_databufs(ip, page, offset_in_page(pos), copied);

if (tr->tr_num_buf_new)
__mark_inode_dirty(inode, I_DIRTY_DATASYNC);

gfs2_trans_end(sdp);
}

Expand Down Expand Up @@ -1099,8 +1104,6 @@ static int gfs2_iomap_begin_write(struct inode *inode, loff_t pos,
tr = current->journal_info;
if (tr->tr_num_buf_new)
__mark_inode_dirty(inode, I_DIRTY_DATASYNC);
else
gfs2_trans_add_meta(ip->i_gl, mp->mp_bh[0]);

gfs2_trans_end(sdp);
}
Expand Down Expand Up @@ -1181,10 +1184,16 @@ static int gfs2_iomap_end(struct inode *inode, loff_t pos, loff_t length,

if (ip->i_qadata && ip->i_qadata->qa_qd_num)
gfs2_quota_unlock(ip);

if (unlikely(!written))
goto out_unlock;

if (iomap->flags & IOMAP_F_SIZE_CHANGED)
mark_inode_dirty(inode);
gfs2_write_unlock(inode);
set_bit(GLF_DIRTY, &ip->i_gl->gl_flags);

out_unlock:
gfs2_write_unlock(inode);
out:
return 0;
}
Expand Down

0 comments on commit 97b00af

Please sign in to comment.