aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r--fs/ocfs2/super.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index d3c4d323fab5..8f536b39ce5b 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -40,8 +40,7 @@
40#include <linux/crc32.h> 40#include <linux/crc32.h>
41#include <linux/debugfs.h> 41#include <linux/debugfs.h>
42#include <linux/mount.h> 42#include <linux/mount.h>
43 43#include <linux/seq_file.h>
44#include <cluster/nodemanager.h>
45 44
46#define MLOG_MASK_PREFIX ML_SUPER 45#define MLOG_MASK_PREFIX ML_SUPER
47#include <cluster/masklog.h> 46#include <cluster/masklog.h>
@@ -579,15 +578,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
579 goto read_super_error; 578 goto read_super_error;
580 } 579 }
581 580
582 /* for now we only have one cluster/node, make sure we see it
583 * in the heartbeat universe */
584 if (parsed_options.mount_opt & OCFS2_MOUNT_HB_LOCAL) {
585 if (!o2hb_check_local_node_heartbeating()) {
586 status = -EINVAL;
587 goto read_super_error;
588 }
589 }
590
591 /* probe for superblock */ 581 /* probe for superblock */
592 status = ocfs2_sb_probe(sb, &bh, &sector_size); 582 status = ocfs2_sb_probe(sb, &bh, &sector_size);
593 if (status < 0) { 583 if (status < 0) {
@@ -1275,8 +1265,15 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err)
1275 1265
1276 debugfs_remove(osb->osb_debug_root); 1266 debugfs_remove(osb->osb_debug_root);
1277 1267
1278 if (!mnt_err) 1268 /*
1279 ocfs2_stop_heartbeat(osb); 1269 * This is a small hack to move ocfs2_hb_ctl into stackglue.
1270 * If we're dismounting due to mount error, mount.ocfs2 will clean
1271 * up heartbeat. If we're a local mount, there is no heartbeat.
1272 * If we failed before we got a uuid_str yet, we can't stop
1273 * heartbeat. Otherwise, do it.
1274 */
1275 if (!mnt_err && !ocfs2_mount_local(osb) && osb->uuid_str)
1276 ocfs2_cluster_hangup(osb->uuid_str, strlen(osb->uuid_str));
1280 1277
1281 atomic_set(&osb->vol_state, VOLUME_DISMOUNTED); 1278 atomic_set(&osb->vol_state, VOLUME_DISMOUNTED);
1282 1279