]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/gfs2/glock.c
Merge tag 'for-f2fs-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk...
[karo-tx-linux.git] / fs / gfs2 / glock.c
index 9e81219692c494a39b65cc7ff5f3a32af88d23a4..959a19ced4d5f83fccf7e82c88a5855f3d1d26cc 100644 (file)
@@ -449,7 +449,8 @@ __acquires(&gl->gl_lockref.lock)
        unsigned int lck_flags = (unsigned int)(gh ? gh->gh_flags : 0);
        int ret;
 
-       if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags)))
+       if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags)) &&
+           target != LM_ST_UNLOCKED)
                return;
        lck_flags &= (LM_FLAG_TRY | LM_FLAG_TRY_1CB | LM_FLAG_NOEXP |
                      LM_FLAG_PRIORITY);
@@ -486,7 +487,8 @@ __acquires(&gl->gl_lockref.lock)
                }
                else if (ret) {
                        pr_err("lm_lock ret %d\n", ret);
-                       GLOCK_BUG_ON(gl, 1);
+                       GLOCK_BUG_ON(gl, !test_bit(SDF_SHUTDOWN,
+                                                  &sdp->sd_flags));
                }
        } else { /* lock_nolock */
                finish_xmote(gl, target);