Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[pandora-kernel.git] / fs / ocfs2 / heartbeat.c
index 8fc52d6..c0efd94 100644 (file)
@@ -30,9 +30,6 @@
 #include <linux/highmem.h>
 #include <linux/kmod.h>
 
-#include <cluster/heartbeat.h>
-#include <cluster/nodemanager.h>
-
 #include <dlm/dlmapi.h>
 
 #define MLOG_MASK_PREFIX ML_SUPER
 #include "heartbeat.h"
 #include "inode.h"
 #include "journal.h"
-#include "vote.h"
 
 #include "buffer_head_io.h"
 
-#define OCFS2_HB_NODE_DOWN_PRI     (0x0000002)
-#define OCFS2_HB_NODE_UP_PRI      OCFS2_HB_NODE_DOWN_PRI
-
 static inline void __ocfs2_node_map_set_bit(struct ocfs2_node_map *map,
                                            int bit);
 static inline void __ocfs2_node_map_clear_bit(struct ocfs2_node_map *map,
@@ -64,9 +57,7 @@ static void __ocfs2_node_map_set(struct ocfs2_node_map *target,
 void ocfs2_init_node_maps(struct ocfs2_super *osb)
 {
        spin_lock_init(&osb->node_map_lock);
-       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);
 }
 
@@ -87,24 +78,7 @@ static void ocfs2_do_node_down(int node_num,
                return;
        }
 
-       if (ocfs2_node_map_test_bit(osb, &osb->umount_map, node_num)) {
-               /* If a node is in the umount map, then we've been
-                * expecting him to go down and we know ahead of time
-                * that recovery is not necessary. */
-               ocfs2_node_map_clear_bit(osb, &osb->umount_map, node_num);
-               return;
-       }
-
        ocfs2_recovery_thread(osb, node_num);
-
-       ocfs2_remove_node_from_vote_queues(osb, node_num);
-}
-
-static void ocfs2_hb_node_down_cb(struct o2nm_node *node,
-                                 int node_num,
-                                 void *data)
-{
-       ocfs2_do_node_down(node_num, (struct ocfs2_super *) data);
 }
 
 /* Called from the dlm when it's about to evict a node. We may also
@@ -121,27 +95,8 @@ static void ocfs2_dlm_eviction_cb(int node_num,
        ocfs2_do_node_down(node_num, osb);
 }
 
-static void ocfs2_hb_node_up_cb(struct o2nm_node *node,
-                               int node_num,
-                               void *data)
-{
-       struct ocfs2_super *osb = data;
-
-       BUG_ON(osb->node_num == node_num);
-
-       mlog(0, "node up event for %d\n", node_num);
-       ocfs2_node_map_clear_bit(osb, &osb->umount_map, node_num);
-}
-
 void ocfs2_setup_hb_callbacks(struct ocfs2_super *osb)
 {
-       o2hb_setup_callback(&osb->osb_hb_down, O2HB_NODE_DOWN_CB,
-                           ocfs2_hb_node_down_cb, osb,
-                           OCFS2_HB_NODE_DOWN_PRI);
-
-       o2hb_setup_callback(&osb->osb_hb_up, O2HB_NODE_UP_CB,
-                           ocfs2_hb_node_up_cb, osb, OCFS2_HB_NODE_UP_PRI);
-
        /* Not exactly a heartbeat callback, but leads to essentially
         * the same path so we set it up here. */
        dlm_setup_eviction_cb(&osb->osb_eviction_cb,
@@ -149,44 +104,6 @@ void ocfs2_setup_hb_callbacks(struct ocfs2_super *osb)
                              osb);
 }
 
-/* Most functions here are just stubs for now... */
-int ocfs2_register_hb_callbacks(struct ocfs2_super *osb)
-{
-       int status;
-
-       if (ocfs2_mount_local(osb))
-               return 0;
-
-       status = o2hb_register_callback(&osb->osb_hb_down);
-       if (status < 0) {
-               mlog_errno(status);
-               goto bail;
-       }
-
-       status = o2hb_register_callback(&osb->osb_hb_up);
-       if (status < 0)
-               mlog_errno(status);
-
-bail:
-       return status;
-}
-
-void ocfs2_clear_hb_callbacks(struct ocfs2_super *osb)
-{
-       int status;
-
-       if (ocfs2_mount_local(osb))
-               return;
-
-       status = o2hb_unregister_callback(&osb->osb_hb_down);
-       if (status < 0)
-               mlog_errno(status);
-
-       status = o2hb_unregister_callback(&osb->osb_hb_up);
-       if (status < 0)
-               mlog_errno(status);
-}
-
 void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
 {
        int ret;
@@ -214,7 +131,7 @@ void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
        envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
        envp[2] = NULL;
 
-       ret = call_usermodehelper(argv[0], argv, envp, 1);
+       ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
        if (ret < 0)
                mlog_errno(ret);
 }
@@ -346,8 +263,6 @@ int ocfs2_recovery_map_set(struct ocfs2_super *osb,
 
        spin_lock(&osb->node_map_lock);
 
-       __ocfs2_node_map_clear_bit(&osb->mounted_map, num);
-
        if (!test_bit(num, osb->recovery_map.map)) {
            __ocfs2_node_map_set_bit(&osb->recovery_map, num);
            set = 1;