diff options
| -rw-r--r-- | fs/ocfs2/dlm/dlmrecovery.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index d9fa3d22e17c..2f9e4e19a4f2 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c | |||
| @@ -2589,6 +2589,14 @@ retry: | |||
| 2589 | "begin reco msg (%d)\n", dlm->name, nodenum, ret); | 2589 | "begin reco msg (%d)\n", dlm->name, nodenum, ret); |
| 2590 | ret = 0; | 2590 | ret = 0; |
| 2591 | } | 2591 | } |
| 2592 | if (ret == -EAGAIN) { | ||
| 2593 | mlog(0, "%s: trying to start recovery of node " | ||
| 2594 | "%u, but node %u is waiting for last recovery " | ||
| 2595 | "to complete, backoff for a bit\n", dlm->name, | ||
| 2596 | dead_node, nodenum); | ||
| 2597 | msleep(100); | ||
| 2598 | goto retry; | ||
| 2599 | } | ||
| 2592 | if (ret < 0) { | 2600 | if (ret < 0) { |
| 2593 | struct dlm_lock_resource *res; | 2601 | struct dlm_lock_resource *res; |
| 2594 | /* this is now a serious problem, possibly ENOMEM | 2602 | /* this is now a serious problem, possibly ENOMEM |
| @@ -2608,14 +2616,6 @@ retry: | |||
| 2608 | * another ENOMEM */ | 2616 | * another ENOMEM */ |
| 2609 | msleep(100); | 2617 | msleep(100); |
| 2610 | goto retry; | 2618 | goto retry; |
| 2611 | } else if (ret == EAGAIN) { | ||
| 2612 | mlog(0, "%s: trying to start recovery of node " | ||
| 2613 | "%u, but node %u is waiting for last recovery " | ||
| 2614 | "to complete, backoff for a bit\n", dlm->name, | ||
| 2615 | dead_node, nodenum); | ||
| 2616 | /* TODO Look into replacing msleep with cond_resched() */ | ||
| 2617 | msleep(100); | ||
| 2618 | goto retry; | ||
| 2619 | } | 2619 | } |
| 2620 | } | 2620 | } |
| 2621 | 2621 | ||
| @@ -2639,7 +2639,7 @@ int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data, | |||
| 2639 | dlm->name, br->node_idx, br->dead_node, | 2639 | dlm->name, br->node_idx, br->dead_node, |
| 2640 | dlm->reco.dead_node, dlm->reco.new_master); | 2640 | dlm->reco.dead_node, dlm->reco.new_master); |
| 2641 | spin_unlock(&dlm->spinlock); | 2641 | spin_unlock(&dlm->spinlock); |
| 2642 | return EAGAIN; | 2642 | return -EAGAIN; |
| 2643 | } | 2643 | } |
| 2644 | spin_unlock(&dlm->spinlock); | 2644 | spin_unlock(&dlm->spinlock); |
| 2645 | 2645 | ||
