diff options
author | Peter Zijlstra <peterz@infradead.org> | 2020-05-19 21:34:12 +0300 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2020-05-19 21:34:12 +0300 |
commit | 9013196a467e770e1470cccee6c0fe435ef37c66 (patch) | |
tree | 2aefbb9d14a1a7513af9e752fe5bb80cf6b00c0c /fs/gfs2/util.c | |
parent | 2a0a24ebb499c9d499eea948d3fc108f936e36d4 (diff) | |
parent | 39f23ce07b9355d05a64ae303ce20d1c4b92b957 (diff) | |
download | linux-9013196a467e770e1470cccee6c0fe435ef37c66.tar.xz |
Merge branch 'sched/urgent'
Diffstat (limited to 'fs/gfs2/util.c')
-rw-r--r-- | fs/gfs2/util.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c index 9b64d40ab379..aa087a5675af 100644 --- a/fs/gfs2/util.c +++ b/fs/gfs2/util.c @@ -119,6 +119,12 @@ static void signal_our_withdraw(struct gfs2_sbd *sdp) if (!sb_rdonly(sdp->sd_vfs)) ret = gfs2_make_fs_ro(sdp); + if (sdp->sd_lockstruct.ls_ops->lm_lock == NULL) { /* lock_nolock */ + if (!ret) + ret = -EIO; + clear_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags); + goto skip_recovery; + } /* * Drop the glock for our journal so another node can recover it. */ @@ -159,10 +165,6 @@ static void signal_our_withdraw(struct gfs2_sbd *sdp) wait_on_bit(&gl->gl_flags, GLF_FREEING, TASK_UNINTERRUPTIBLE); } - if (sdp->sd_lockstruct.ls_ops->lm_lock == NULL) { /* lock_nolock */ - clear_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags); - goto skip_recovery; - } /* * Dequeue the "live" glock, but keep a reference so it's never freed. */ |