Răsfoiți Sursa

[GFS2] Always include glock in transaction

Include the glock in the transaction, even when not journaling
data in order that ordered write data will be correctly flushed
when the lock is released.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Steven Whitehouse 19 ani în urmă
părinte
comite
b61dde795f
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      fs/gfs2/lops.c

+ 1 - 1
fs/gfs2/lops.c

@@ -467,11 +467,11 @@ static void databuf_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le)
 	if (!list_empty(&bd->bd_list_tr) &&
 	if (!list_empty(&bd->bd_list_tr) &&
 	    (ip->i_di.di_flags & GFS2_DIF_JDATA)) {
 	    (ip->i_di.di_flags & GFS2_DIF_JDATA)) {
 		tr->tr_num_buf++;
 		tr->tr_num_buf++;
-		gfs2_trans_add_gl(bd->bd_gl);
 		list_add(&bd->bd_list_tr, &tr->tr_list_buf);
 		list_add(&bd->bd_list_tr, &tr->tr_list_buf);
 		gfs2_pin(sdp, bd->bd_bh);
 		gfs2_pin(sdp, bd->bd_bh);
 		tr->tr_num_buf_new++;
 		tr->tr_num_buf_new++;
 	}
 	}
+	gfs2_trans_add_gl(bd->bd_gl);
 	gfs2_log_lock(sdp);
 	gfs2_log_lock(sdp);
 	if (!list_empty(&le->le_list)) {
 	if (!list_empty(&le->le_list)) {
 		if (ip->i_di.di_flags & GFS2_DIF_JDATA)
 		if (ip->i_di.di_flags & GFS2_DIF_JDATA)