aboutsummaryrefslogtreecommitdiff
path: root/drivers/block/drbd/drbd_nl.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-10-10 12:55:50 +0100
committerMark Brown <broonie@kernel.org>2014-10-10 12:55:50 +0100
commitf8ba86b7fbe99740c82a7442a0c94e7584dd02bf (patch)
treebfe82e7b0c48e50b34a0d3cfdd0c02dd8b7737f4 /drivers/block/drbd/drbd_nl.c
parent0ee8bb9c4864ee826e6c669f230562cd0fed8722 (diff)
parentf41c15f2c9a00489735036846ec7e474e52b14a6 (diff)
Merge tag 'v3.10.57' into linux-linaro-lsk
This is the 3.10.57 stable release
Diffstat (limited to 'drivers/block/drbd/drbd_nl.c')
-rw-r--r--drivers/block/drbd/drbd_nl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 9e3f441e7e84..9c37f3d896a2 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -514,6 +514,12 @@ void conn_try_outdate_peer_async(struct drbd_tconn *tconn)
struct task_struct *opa;
kref_get(&tconn->kref);
+ /* We may just have force_sig()'ed this thread
+ * to get it out of some blocking network function.
+ * Clear signals; otherwise kthread_run(), which internally uses
+ * wait_on_completion_killable(), will mistake our pending signal
+ * for a new fatal signal and fail. */
+ flush_signals(current);
opa = kthread_run(_try_outdate_peer_async, tconn, "drbd_async_h");
if (IS_ERR(opa)) {
conn_err(tconn, "out of mem, failed to invoke fence-peer helper\n");