Hi all, Today's linux-next merge of the vfs-brauner tree got a conflict in: fs/gfs2/lock_dlm.c between commit: 657e5af4fe0b9 ("gfs2: harden gfs2_glock_hold") from the gfs2 tree and commit: 91e27ed8a387c ("lockref: tidy up dead count handling") from the vfs-brauner tree. I fixed it up (see below) and can carry the fix as necessary. This is now fixed as far as linux-next is concerned, but any non trivial conflicts should be mentioned to your upstream maintainer when your tree is submitted for merging. You may also want to consider cooperating with the maintainer of the conflicting tree to minimise any particularly complex conflicts. diff --combined fs/gfs2/lock_dlm.c index babce07b84f19,cc901fb97da0c..0000000000000 --- a/fs/gfs2/lock_dlm.c +++ b/fs/gfs2/lock_dlm.c @@@ -126,7 -126,7 +126,7 @@@ static void gdlm_ast(void *arg clear_bit(GLF_BLOCKING, &gl->gl_flags); /* If the glock is dead, we only react to a dlm_unlock() reply. */ - if (__lockref_is_dead(&gl->gl_lockref) && + if (lockref_is_dead(&gl->gl_lockref) && gl->gl_lksb.sb_status != -DLM_EUNLOCK) return; @@@ -182,6 -182,9 +182,6 @@@ static void gdlm_bast(void *arg, int mo { struct gfs2_glock *gl = arg; - if (lockref_is_dead(&gl->gl_lockref)) - return; - switch (mode) { case DLM_LOCK_EX: gfs2_glock_cb(gl, LM_ST_UNLOCKED); @@@ -326,7 -329,7 +326,7 @@@ static void gdlm_put_lock(struct gfs2_g uint32_t flags = 0; int error; - BUG_ON(!__lockref_is_dead(&gl->gl_lockref)); + BUG_ON(!lockref_is_dead(&gl->gl_lockref)); if (test_bit(GLF_INITIAL, &gl->gl_flags)) { gfs2_glock_free(gl); @@@ -344,7 -347,7 +344,7 @@@ * DLM_LOCK_PW mode, the lock value block (LVB) would be lost. */ - if (test_bit(SDF_SKIP_DLM_UNLOCK, &sdp->sd_flags) && + if (test_bit(SDF_KILL, &sdp->sd_flags) && (!gl->gl_lksb.sb_lvbptr || gl->gl_state != LM_ST_EXCLUSIVE)) { gfs2_glock_free_later(gl); return;