git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull ec into release branch
[pandora-kernel.git]
/
fs
/
ocfs2
/
heartbeat.c
diff --git
a/fs/ocfs2/heartbeat.c
b/fs/ocfs2/heartbeat.c
index
0bbd22f
..
b25ef63
100644
(file)
--- 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->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,
}
static void ocfs2_do_node_down(int node_num,
@@
-153,6
+154,9
@@
int ocfs2_register_hb_callbacks(struct ocfs2_super *osb)
{
int status;
{
int status;
+ if (ocfs2_mount_local(osb))
+ return 0;
+
status = o2hb_register_callback(&osb->osb_hb_down);
if (status < 0) {
mlog_errno(status);
status = o2hb_register_callback(&osb->osb_hb_down);
if (status < 0) {
mlog_errno(status);
@@
-160,8
+164,10
@@
int ocfs2_register_hb_callbacks(struct ocfs2_super *osb)
}
status = o2hb_register_callback(&osb->osb_hb_up);
}
status = o2hb_register_callback(&osb->osb_hb_up);
- if (status < 0)
+ if (status < 0)
{
mlog_errno(status);
mlog_errno(status);
+ o2hb_unregister_callback(&osb->osb_hb_down);
+ }
bail:
return status;
bail:
return status;
@@
-169,15
+175,11
@@
bail:
void ocfs2_clear_hb_callbacks(struct ocfs2_super *osb)
{
void ocfs2_clear_hb_callbacks(struct ocfs2_super *osb)
{
- int status;
-
- status = o2hb_unregister_callback(&osb->osb_hb_down);
- if (status < 0)
- mlog_errno(status);
+ if (ocfs2_mount_local(osb))
+ return;
- status = o2hb_unregister_callback(&osb->osb_hb_up);
- if (status < 0)
- mlog_errno(status);
+ o2hb_unregister_callback(&osb->osb_hb_down);
+ o2hb_unregister_callback(&osb->osb_hb_up);
}
void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
}
void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
@@
-185,6
+187,9
@@
void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
int ret;
char *argv[5], *envp[3];
int ret;
char *argv[5], *envp[3];
+ if (ocfs2_mount_local(osb))
+ return;
+
if (!osb->uuid_str) {
/* This can happen if we don't get far enough in mount... */
mlog(0, "No UUID with which to stop heartbeat!\n\n");
if (!osb->uuid_str) {
/* This can happen if we don't get far enough in mount... */
mlog(0, "No UUID with which to stop heartbeat!\n\n");