summaryrefslogtreecommitdiff
path: root/fs/ocfs2/dlmglue.c
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2016-03-10 10:23:15 -0500
committerSteven Rostedt <rostedt@goodmis.org>2016-03-10 10:33:02 -0500
commit51edd030a0c3e547e275a776cd4108e1cab5495a (patch)
tree5bb744c9a539877a98fea4affaa2129087e9b667 /fs/ocfs2/dlmglue.c
parentf2129ab437590c0d7f864725f580373270fd47f9 (diff)
parent83fdace666f72dbfc4a7681a04e3689b61dae3b9 (diff)
downloadlinux-rt-51edd030a0c3e547e275a776cd4108e1cab5495a.tar.gz
Merge tag 'v4.1.18' into v4.1-rt
Linux 4.1.18 Conflicts: kernel/futex.c kernel/printk/printk.c lib/dump_stack.c
Diffstat (limited to 'fs/ocfs2/dlmglue.c')
-rw-r--r--fs/ocfs2/dlmglue.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index 23157e40dd74..3623ab6fa97f 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -1390,6 +1390,7 @@ static int __ocfs2_cluster_lock(struct ocfs2_super *osb,
unsigned int gen;
int noqueue_attempted = 0;
int dlm_locked = 0;
+ int kick_dc = 0;
if (!(lockres->l_flags & OCFS2_LOCK_INITIALIZED)) {
mlog_errno(-EINVAL);
@@ -1524,7 +1525,12 @@ update_holders:
unlock:
lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING);
+ /* ocfs2_unblock_lock reques on seeing OCFS2_LOCK_UPCONVERT_FINISHING */
+ kick_dc = (lockres->l_flags & OCFS2_LOCK_BLOCKED);
+
spin_unlock_irqrestore(&lockres->l_lock, flags);
+ if (kick_dc)
+ ocfs2_wake_downconvert_thread(osb);
out:
/*
* This is helping work around a lock inversion between the page lock