diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2006-02-23 02:35:08 +0100 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2006-03-01 20:32:41 +0100 |
commit | b4df6ed8db0c387d38292e31f00adc4cd297ed5a (patch) | |
tree | d7dcaeecfa55b3fd9d6c4844d90e07759182f845 /fs/ocfs2/heartbeat.c | |
parent | [PATCH] ocfs2: complete failure recovery for nodemanager init (diff) | |
download | linux-b4df6ed8db0c387d38292e31f00adc4cd297ed5a.tar.xz linux-b4df6ed8db0c387d38292e31f00adc4cd297ed5a.zip |
[PATCH] ocfs2: fix orphan recovery deadlock
Orphan dir recovery can deadlock with another process in
ocfs2_delete_inode() in some corner cases. Fix this by tracking recovery
state more closely and allowing it to handle inode wipes which might
deadlock.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/heartbeat.c')
-rw-r--r-- | fs/ocfs2/heartbeat.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ocfs2/heartbeat.c b/fs/ocfs2/heartbeat.c index 0bbd22f46c80..cbfd45a97a63 100644 --- a/fs/ocfs2/heartbeat.c +++ b/fs/ocfs2/heartbeat.c @@ -67,6 +67,7 @@ void ocfs2_init_node_maps(struct ocfs2_super *osb) ocfs2_node_map_init(&osb->mounted_map); ocfs2_node_map_init(&osb->recovery_map); ocfs2_node_map_init(&osb->umount_map); + ocfs2_node_map_init(&osb->osb_recovering_orphan_dirs); } static void ocfs2_do_node_down(int node_num, |