diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmlock.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmlock.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/ocfs2/dlm/dlmlock.c b/fs/ocfs2/dlm/dlmlock.c index 675123c30852..0ff934874942 100644 --- a/fs/ocfs2/dlm/dlmlock.c +++ b/fs/ocfs2/dlm/dlmlock.c | |||
@@ -227,14 +227,18 @@ static enum dlm_status dlmlock_remote(struct dlm_ctxt *dlm, | |||
227 | res->state &= ~DLM_LOCK_RES_IN_PROGRESS; | 227 | res->state &= ~DLM_LOCK_RES_IN_PROGRESS; |
228 | lock->lock_pending = 0; | 228 | lock->lock_pending = 0; |
229 | if (status != DLM_NORMAL) { | 229 | if (status != DLM_NORMAL) { |
230 | if (status != DLM_NOTQUEUED) | 230 | if (status != DLM_NOTQUEUED) { |
231 | /* | ||
232 | * DO NOT call calc_usage, as this would unhash | ||
233 | * the remote lockres before we ever get to use | ||
234 | * it. treat as if we never made any change to | ||
235 | * the lockres. | ||
236 | */ | ||
237 | lockres_changed = 0; | ||
231 | dlm_error(status); | 238 | dlm_error(status); |
239 | } | ||
232 | dlm_revert_pending_lock(res, lock); | 240 | dlm_revert_pending_lock(res, lock); |
233 | dlm_lock_put(lock); | 241 | dlm_lock_put(lock); |
234 | /* do NOT call calc_usage, as this would unhash the remote | ||
235 | * lockres before we ever get to use it. treat as if we | ||
236 | * never made any change to the lockres. */ | ||
237 | lockres_changed = 0; | ||
238 | } else if (dlm_is_recovery_lock(res->lockname.name, | 242 | } else if (dlm_is_recovery_lock(res->lockname.name, |
239 | res->lockname.len)) { | 243 | res->lockname.len)) { |
240 | /* special case for the $RECOVERY lock. | 244 | /* special case for the $RECOVERY lock. |