diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmconvert.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmconvert.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ocfs2/dlm/dlmconvert.c b/fs/ocfs2/dlm/dlmconvert.c index c764dc8e40a2..42c177444850 100644 --- a/fs/ocfs2/dlm/dlmconvert.c +++ b/fs/ocfs2/dlm/dlmconvert.c | |||
@@ -428,7 +428,7 @@ int dlm_convert_lock_handler(struct o2net_msg *msg, u32 len, void *data) | |||
428 | struct dlm_lockstatus *lksb; | 428 | struct dlm_lockstatus *lksb; |
429 | enum dlm_status status = DLM_NORMAL; | 429 | enum dlm_status status = DLM_NORMAL; |
430 | u32 flags; | 430 | u32 flags; |
431 | int call_ast = 0, kick_thread = 0, ast_reserved = 0; | 431 | int call_ast = 0, kick_thread = 0, ast_reserved = 0, wake = 0; |
432 | 432 | ||
433 | if (!dlm_grab(dlm)) { | 433 | if (!dlm_grab(dlm)) { |
434 | dlm_error(DLM_REJECTED); | 434 | dlm_error(DLM_REJECTED); |
@@ -524,8 +524,11 @@ int dlm_convert_lock_handler(struct o2net_msg *msg, u32 len, void *data) | |||
524 | cnv->requested_type, | 524 | cnv->requested_type, |
525 | &call_ast, &kick_thread); | 525 | &call_ast, &kick_thread); |
526 | res->state &= ~DLM_LOCK_RES_IN_PROGRESS; | 526 | res->state &= ~DLM_LOCK_RES_IN_PROGRESS; |
527 | wake = 1; | ||
527 | } | 528 | } |
528 | spin_unlock(&res->spinlock); | 529 | spin_unlock(&res->spinlock); |
530 | if (wake) | ||
531 | wake_up(&res->wq); | ||
529 | 532 | ||
530 | if (status != DLM_NORMAL) { | 533 | if (status != DLM_NORMAL) { |
531 | if (status != DLM_NOTQUEUED) | 534 | if (status != DLM_NOTQUEUED) |