diff options
| -rw-r--r-- | fs/gfs2/glock.c | 4 | ||||
| -rw-r--r-- | fs/gfs2/log.c | 12 |
2 files changed, 2 insertions, 14 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 8ecd9c477f02..7dd96086eeaa 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -710,6 +710,7 @@ __acquires(&gl->gl_lockref.lock) if (cmpxchg(&sdp->sd_log_error, 0, ret)) { fs_err(sdp, "Error %d syncing glock\n", ret); gfs2_dump_glock(NULL, gl, true); + gfs2_withdraw(sdp); } spin_lock(&gl->gl_lockref.lock); goto skip_inval; @@ -728,6 +729,7 @@ __acquires(&gl->gl_lockref.lock) gfs2_glock_assert_warn(gl, !atomic_read(&gl->gl_ail_count)); gfs2_dump_glock(NULL, gl, true); + gfs2_withdraw(sdp); } glops->go_inval(gl, target == LM_ST_DEFERRED ? 0 : DIO_METADATA); } @@ -755,8 +757,6 @@ skip_inval: * gfs2_gl_hash_clear calls clear_glock) and recovery is complete * then it's okay to tell dlm to unlock it. */ - if (unlikely(sdp->sd_log_error) && !gfs2_withdrawn(sdp)) - gfs2_withdraw(sdp); if (glock_blocked_by_withdraw(gl) && (target != LM_ST_UNLOCKED || test_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags))) { diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index b97da7f4d3f8..69734e18b23d 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -1299,17 +1299,6 @@ int gfs2_logd(void *data) if (gfs2_withdrawn(sdp)) break; - /* Check for errors writing to the journal */ - if (sdp->sd_log_error) { - gfs2_lm(sdp, - "GFS2: fsid=%s: error %d: " - "withdrawing the file system to " - "prevent further damage.\n", - sdp->sd_fsname, sdp->sd_log_error); - gfs2_withdraw(sdp); - break; - } - if (gfs2_jrnl_flush_reqd(sdp) || t == 0) { gfs2_ail1_empty(sdp, 0); gfs2_log_flush(sdp, NULL, GFS2_LOG_HEAD_FLUSH_NORMAL | @@ -1332,7 +1321,6 @@ int gfs2_logd(void *data) test_bit(SDF_FORCE_AIL_FLUSH, &sdp->sd_flags) || gfs2_ail_flush_reqd(sdp) || gfs2_jrnl_flush_reqd(sdp) || - sdp->sd_log_error || gfs2_withdrawn(sdp) || kthread_should_stop(), t); |
