diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-24 15:59:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-24 15:59:11 -0500 |
commit | 45e62974fb110da926e2a6c5b357c15639bdc233 (patch) | |
tree | 0c2094de939e69fa3e44854c71aa45d7ec137895 /fs/ocfs2/dlm | |
parent | 756fe285070feb254a770cefc5640fe005ea9c27 (diff) | |
parent | 8ff6af881deccca4f88e03f2fdadb1aac42e9489 (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:
ocfs2/trivial: Use le16_to_cpu for a disk value in xattr.c
ocfs2/trivial: Use proper mask for 2 places in hearbeat.c
Ocfs2: Let ocfs2 support fiemap for symlink and fast symlink.
Ocfs2: Should ocfs2 support fiemap for S_IFDIR inode?
ocfs2: Use FIEMAP_EXTENT_SHARED
fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
ocfs2: replace u8 by __u8 in ocfs2_fs.h
ocfs2: explicit declare uninitialized var in user_cluster_connect()
ocfs2-devel: remove redundant OCFS2_MOUNT_POSIX_ACL check in ocfs2_get_acl_nolock()
ocfs2: return -EAGAIN instead of EAGAIN in dlm
ocfs2/cluster: Make fence method configurable - v2
ocfs2: Set MS_POSIXACL on remount
ocfs2: Make acl use the default
ocfs2: Always include ACL support
Diffstat (limited to 'fs/ocfs2/dlm')
-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 | ||