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.c131
1 files changed, 50 insertions, 81 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 06d1f749ca89..5a521c748859 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -42,7 +42,9 @@
42#include <linux/seq_file.h> 42#include <linux/seq_file.h>
43#include <linux/quotaops.h> 43#include <linux/quotaops.h>
44 44
45#define MLOG_MASK_PREFIX ML_SUPER 45#define CREATE_TRACE_POINTS
46#include "ocfs2_trace.h"
47
46#include <cluster/masklog.h> 48#include <cluster/masklog.h>
47 49
48#include "ocfs2.h" 50#include "ocfs2.h"
@@ -76,7 +78,7 @@ static struct kmem_cache *ocfs2_inode_cachep = NULL;
76struct kmem_cache *ocfs2_dquot_cachep; 78struct kmem_cache *ocfs2_dquot_cachep;
77struct kmem_cache *ocfs2_qf_chunk_cachep; 79struct kmem_cache *ocfs2_qf_chunk_cachep;
78 80
79/* OCFS2 needs to schedule several differnt types of work which 81/* OCFS2 needs to schedule several different types of work which
80 * require cluster locking, disk I/O, recovery waits, etc. Since these 82 * require cluster locking, disk I/O, recovery waits, etc. Since these
81 * types of work tend to be heavy we avoid using the kernel events 83 * types of work tend to be heavy we avoid using the kernel events
82 * workqueue and schedule on our own. */ 84 * workqueue and schedule on our own. */
@@ -441,8 +443,6 @@ static int ocfs2_init_global_system_inodes(struct ocfs2_super *osb)
441 int status = 0; 443 int status = 0;
442 int i; 444 int i;
443 445
444 mlog_entry_void();
445
446 new = ocfs2_iget(osb, osb->root_blkno, OCFS2_FI_FLAG_SYSFILE, 0); 446 new = ocfs2_iget(osb, osb->root_blkno, OCFS2_FI_FLAG_SYSFILE, 0);
447 if (IS_ERR(new)) { 447 if (IS_ERR(new)) {
448 status = PTR_ERR(new); 448 status = PTR_ERR(new);
@@ -478,7 +478,8 @@ static int ocfs2_init_global_system_inodes(struct ocfs2_super *osb)
478 } 478 }
479 479
480bail: 480bail:
481 mlog_exit(status); 481 if (status)
482 mlog_errno(status);
482 return status; 483 return status;
483} 484}
484 485
@@ -488,8 +489,6 @@ static int ocfs2_init_local_system_inodes(struct ocfs2_super *osb)
488 int status = 0; 489 int status = 0;
489 int i; 490 int i;
490 491
491 mlog_entry_void();
492
493 for (i = OCFS2_LAST_GLOBAL_SYSTEM_INODE + 1; 492 for (i = OCFS2_LAST_GLOBAL_SYSTEM_INODE + 1;
494 i < NUM_SYSTEM_INODES; 493 i < NUM_SYSTEM_INODES;
495 i++) { 494 i++) {
@@ -508,7 +507,8 @@ static int ocfs2_init_local_system_inodes(struct ocfs2_super *osb)
508 } 507 }
509 508
510bail: 509bail:
511 mlog_exit(status); 510 if (status)
511 mlog_errno(status);
512 return status; 512 return status;
513} 513}
514 514
@@ -517,8 +517,6 @@ static void ocfs2_release_system_inodes(struct ocfs2_super *osb)
517 int i; 517 int i;
518 struct inode *inode; 518 struct inode *inode;
519 519
520 mlog_entry_void();
521
522 for (i = 0; i < NUM_GLOBAL_SYSTEM_INODES; i++) { 520 for (i = 0; i < NUM_GLOBAL_SYSTEM_INODES; i++) {
523 inode = osb->global_system_inodes[i]; 521 inode = osb->global_system_inodes[i];
524 if (inode) { 522 if (inode) {
@@ -540,7 +538,7 @@ static void ocfs2_release_system_inodes(struct ocfs2_super *osb)
540 } 538 }
541 539
542 if (!osb->local_system_inodes) 540 if (!osb->local_system_inodes)
543 goto out; 541 return;
544 542
545 for (i = 0; i < NUM_LOCAL_SYSTEM_INODES * osb->max_slots; i++) { 543 for (i = 0; i < NUM_LOCAL_SYSTEM_INODES * osb->max_slots; i++) {
546 if (osb->local_system_inodes[i]) { 544 if (osb->local_system_inodes[i]) {
@@ -551,9 +549,6 @@ static void ocfs2_release_system_inodes(struct ocfs2_super *osb)
551 549
552 kfree(osb->local_system_inodes); 550 kfree(osb->local_system_inodes);
553 osb->local_system_inodes = NULL; 551 osb->local_system_inodes = NULL;
554
555out:
556 mlog_exit(0);
557} 552}
558 553
559/* We're allocating fs objects, use GFP_NOFS */ 554/* We're allocating fs objects, use GFP_NOFS */
@@ -684,12 +679,9 @@ static int ocfs2_remount(struct super_block *sb, int *flags, char *data)
684 } 679 }
685 680
686 if (*flags & MS_RDONLY) { 681 if (*flags & MS_RDONLY) {
687 mlog(0, "Going to ro mode.\n");
688 sb->s_flags |= MS_RDONLY; 682 sb->s_flags |= MS_RDONLY;
689 osb->osb_flags |= OCFS2_OSB_SOFT_RO; 683 osb->osb_flags |= OCFS2_OSB_SOFT_RO;
690 } else { 684 } else {
691 mlog(0, "Making ro filesystem writeable.\n");
692
693 if (osb->osb_flags & OCFS2_OSB_ERROR_FS) { 685 if (osb->osb_flags & OCFS2_OSB_ERROR_FS) {
694 mlog(ML_ERROR, "Cannot remount RDWR " 686 mlog(ML_ERROR, "Cannot remount RDWR "
695 "filesystem due to previous errors.\n"); 687 "filesystem due to previous errors.\n");
@@ -707,6 +699,7 @@ static int ocfs2_remount(struct super_block *sb, int *flags, char *data)
707 sb->s_flags &= ~MS_RDONLY; 699 sb->s_flags &= ~MS_RDONLY;
708 osb->osb_flags &= ~OCFS2_OSB_SOFT_RO; 700 osb->osb_flags &= ~OCFS2_OSB_SOFT_RO;
709 } 701 }
702 trace_ocfs2_remount(sb->s_flags, osb->osb_flags, *flags);
710unlock_osb: 703unlock_osb:
711 spin_unlock(&osb->osb_lock); 704 spin_unlock(&osb->osb_lock);
712 /* Enable quota accounting after remounting RW */ 705 /* Enable quota accounting after remounting RW */
@@ -993,8 +986,7 @@ static void ocfs2_disable_quotas(struct ocfs2_super *osb)
993} 986}
994 987
995/* Handle quota on quotactl */ 988/* Handle quota on quotactl */
996static int ocfs2_quota_on(struct super_block *sb, int type, int format_id, 989static int ocfs2_quota_on(struct super_block *sb, int type, int format_id)
997 char *path)
998{ 990{
999 unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA, 991 unsigned int feature[MAXQUOTAS] = { OCFS2_FEATURE_RO_COMPAT_USRQUOTA,
1000 OCFS2_FEATURE_RO_COMPAT_GRPQUOTA}; 992 OCFS2_FEATURE_RO_COMPAT_GRPQUOTA};
@@ -1013,7 +1005,7 @@ static int ocfs2_quota_off(struct super_block *sb, int type)
1013} 1005}
1014 1006
1015static const struct quotactl_ops ocfs2_quotactl_ops = { 1007static const struct quotactl_ops ocfs2_quotactl_ops = {
1016 .quota_on = ocfs2_quota_on, 1008 .quota_on_meta = ocfs2_quota_on,
1017 .quota_off = ocfs2_quota_off, 1009 .quota_off = ocfs2_quota_off,
1018 .quota_sync = dquot_quota_sync, 1010 .quota_sync = dquot_quota_sync,
1019 .get_info = dquot_get_dqinfo, 1011 .get_info = dquot_get_dqinfo,
@@ -1033,7 +1025,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
1033 char nodestr[8]; 1025 char nodestr[8];
1034 struct ocfs2_blockcheck_stats stats; 1026 struct ocfs2_blockcheck_stats stats;
1035 1027
1036 mlog_entry("%p, %p, %i", sb, data, silent); 1028 trace_ocfs2_fill_super(sb, data, silent);
1037 1029
1038 if (!ocfs2_parse_options(sb, data, &parsed_options, 0)) { 1030 if (!ocfs2_parse_options(sb, data, &parsed_options, 0)) {
1039 status = -EINVAL; 1031 status = -EINVAL;
@@ -1209,7 +1201,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
1209 mlog_errno(status); 1201 mlog_errno(status);
1210 atomic_set(&osb->vol_state, VOLUME_DISABLED); 1202 atomic_set(&osb->vol_state, VOLUME_DISABLED);
1211 wake_up(&osb->osb_mount_event); 1203 wake_up(&osb->osb_mount_event);
1212 mlog_exit(status);
1213 return status; 1204 return status;
1214 } 1205 }
1215 } 1206 }
@@ -1223,7 +1214,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
1223 /* Start this when the mount is almost sure of being successful */ 1214 /* Start this when the mount is almost sure of being successful */
1224 ocfs2_orphan_scan_start(osb); 1215 ocfs2_orphan_scan_start(osb);
1225 1216
1226 mlog_exit(status);
1227 return status; 1217 return status;
1228 1218
1229read_super_error: 1219read_super_error:
@@ -1238,7 +1228,8 @@ read_super_error:
1238 ocfs2_dismount_volume(sb, 1); 1228 ocfs2_dismount_volume(sb, 1);
1239 } 1229 }
1240 1230
1241 mlog_exit(status); 1231 if (status)
1232 mlog_errno(status);
1242 return status; 1233 return status;
1243} 1234}
1244 1235
@@ -1317,12 +1308,11 @@ static int ocfs2_parse_options(struct super_block *sb,
1317 struct mount_options *mopt, 1308 struct mount_options *mopt,
1318 int is_remount) 1309 int is_remount)
1319{ 1310{
1320 int status; 1311 int status, user_stack = 0;
1321 char *p; 1312 char *p;
1322 u32 tmp; 1313 u32 tmp;
1323 1314
1324 mlog_entry("remount: %d, options: \"%s\"\n", is_remount, 1315 trace_ocfs2_parse_options(is_remount, options ? options : "(none)");
1325 options ? options : "(none)");
1326 1316
1327 mopt->commit_interval = 0; 1317 mopt->commit_interval = 0;
1328 mopt->mount_opt = OCFS2_MOUNT_NOINTR; 1318 mopt->mount_opt = OCFS2_MOUNT_NOINTR;
@@ -1460,6 +1450,15 @@ static int ocfs2_parse_options(struct super_block *sb,
1460 memcpy(mopt->cluster_stack, args[0].from, 1450 memcpy(mopt->cluster_stack, args[0].from,
1461 OCFS2_STACK_LABEL_LEN); 1451 OCFS2_STACK_LABEL_LEN);
1462 mopt->cluster_stack[OCFS2_STACK_LABEL_LEN] = '\0'; 1452 mopt->cluster_stack[OCFS2_STACK_LABEL_LEN] = '\0';
1453 /*
1454 * Open code the memcmp here as we don't have
1455 * an osb to pass to
1456 * ocfs2_userspace_stack().
1457 */
1458 if (memcmp(mopt->cluster_stack,
1459 OCFS2_CLASSIC_CLUSTER_STACK,
1460 OCFS2_STACK_LABEL_LEN))
1461 user_stack = 1;
1463 break; 1462 break;
1464 case Opt_inode64: 1463 case Opt_inode64:
1465 mopt->mount_opt |= OCFS2_MOUNT_INODE64; 1464 mopt->mount_opt |= OCFS2_MOUNT_INODE64;
@@ -1515,19 +1514,21 @@ static int ocfs2_parse_options(struct super_block *sb,
1515 } 1514 }
1516 } 1515 }
1517 1516
1518 /* Ensure only one heartbeat mode */ 1517 if (user_stack == 0) {
1519 tmp = mopt->mount_opt & (OCFS2_MOUNT_HB_LOCAL | OCFS2_MOUNT_HB_GLOBAL | 1518 /* Ensure only one heartbeat mode */
1520 OCFS2_MOUNT_HB_NONE); 1519 tmp = mopt->mount_opt & (OCFS2_MOUNT_HB_LOCAL |
1521 if (hweight32(tmp) != 1) { 1520 OCFS2_MOUNT_HB_GLOBAL |
1522 mlog(ML_ERROR, "Invalid heartbeat mount options\n"); 1521 OCFS2_MOUNT_HB_NONE);
1523 status = 0; 1522 if (hweight32(tmp) != 1) {
1524 goto bail; 1523 mlog(ML_ERROR, "Invalid heartbeat mount options\n");
1524 status = 0;
1525 goto bail;
1526 }
1525 } 1527 }
1526 1528
1527 status = 1; 1529 status = 1;
1528 1530
1529bail: 1531bail:
1530 mlog_exit(status);
1531 return status; 1532 return status;
1532} 1533}
1533 1534
@@ -1618,8 +1619,6 @@ static int __init ocfs2_init(void)
1618{ 1619{
1619 int status; 1620 int status;
1620 1621
1621 mlog_entry_void();
1622
1623 ocfs2_print_version(); 1622 ocfs2_print_version();
1624 1623
1625 status = init_ocfs2_uptodate_cache(); 1624 status = init_ocfs2_uptodate_cache();
@@ -1646,22 +1645,16 @@ static int __init ocfs2_init(void)
1646 mlog(ML_ERROR, "Unable to create ocfs2 debugfs root.\n"); 1645 mlog(ML_ERROR, "Unable to create ocfs2 debugfs root.\n");
1647 } 1646 }
1648 1647
1649 status = ocfs2_quota_setup();
1650 if (status)
1651 goto leave;
1652
1653 ocfs2_set_locking_protocol(); 1648 ocfs2_set_locking_protocol();
1654 1649
1655 status = register_quota_format(&ocfs2_quota_format); 1650 status = register_quota_format(&ocfs2_quota_format);
1656leave: 1651leave:
1657 if (status < 0) { 1652 if (status < 0) {
1658 ocfs2_quota_shutdown();
1659 ocfs2_free_mem_caches(); 1653 ocfs2_free_mem_caches();
1660 exit_ocfs2_uptodate_cache(); 1654 exit_ocfs2_uptodate_cache();
1655 mlog_errno(status);
1661 } 1656 }
1662 1657
1663 mlog_exit(status);
1664
1665 if (status >= 0) { 1658 if (status >= 0) {
1666 return register_filesystem(&ocfs2_fs_type); 1659 return register_filesystem(&ocfs2_fs_type);
1667 } else 1660 } else
@@ -1670,10 +1663,6 @@ leave:
1670 1663
1671static void __exit ocfs2_exit(void) 1664static void __exit ocfs2_exit(void)
1672{ 1665{
1673 mlog_entry_void();
1674
1675 ocfs2_quota_shutdown();
1676
1677 if (ocfs2_wq) { 1666 if (ocfs2_wq) {
1678 flush_workqueue(ocfs2_wq); 1667 flush_workqueue(ocfs2_wq);
1679 destroy_workqueue(ocfs2_wq); 1668 destroy_workqueue(ocfs2_wq);
@@ -1688,18 +1677,14 @@ static void __exit ocfs2_exit(void)
1688 unregister_filesystem(&ocfs2_fs_type); 1677 unregister_filesystem(&ocfs2_fs_type);
1689 1678
1690 exit_ocfs2_uptodate_cache(); 1679 exit_ocfs2_uptodate_cache();
1691
1692 mlog_exit_void();
1693} 1680}
1694 1681
1695static void ocfs2_put_super(struct super_block *sb) 1682static void ocfs2_put_super(struct super_block *sb)
1696{ 1683{
1697 mlog_entry("(0x%p)\n", sb); 1684 trace_ocfs2_put_super(sb);
1698 1685
1699 ocfs2_sync_blockdev(sb); 1686 ocfs2_sync_blockdev(sb);
1700 ocfs2_dismount_volume(sb, 0); 1687 ocfs2_dismount_volume(sb, 0);
1701
1702 mlog_exit_void();
1703} 1688}
1704 1689
1705static int ocfs2_statfs(struct dentry *dentry, struct kstatfs *buf) 1690static int ocfs2_statfs(struct dentry *dentry, struct kstatfs *buf)
@@ -1711,7 +1696,7 @@ static int ocfs2_statfs(struct dentry *dentry, struct kstatfs *buf)
1711 struct buffer_head *bh = NULL; 1696 struct buffer_head *bh = NULL;
1712 struct inode *inode = NULL; 1697 struct inode *inode = NULL;
1713 1698
1714 mlog_entry("(%p, %p)\n", dentry->d_sb, buf); 1699 trace_ocfs2_statfs(dentry->d_sb, buf);
1715 1700
1716 osb = OCFS2_SB(dentry->d_sb); 1701 osb = OCFS2_SB(dentry->d_sb);
1717 1702
@@ -1758,7 +1743,8 @@ bail:
1758 if (inode) 1743 if (inode)
1759 iput(inode); 1744 iput(inode);
1760 1745
1761 mlog_exit(status); 1746 if (status)
1747 mlog_errno(status);
1762 1748
1763 return status; 1749 return status;
1764} 1750}
@@ -1878,8 +1864,6 @@ static int ocfs2_mount_volume(struct super_block *sb)
1878 int unlock_super = 0; 1864 int unlock_super = 0;
1879 struct ocfs2_super *osb = OCFS2_SB(sb); 1865 struct ocfs2_super *osb = OCFS2_SB(sb);
1880 1866
1881 mlog_entry_void();
1882
1883 if (ocfs2_is_hard_readonly(osb)) 1867 if (ocfs2_is_hard_readonly(osb))
1884 goto leave; 1868 goto leave;
1885 1869
@@ -1924,7 +1908,6 @@ leave:
1924 if (unlock_super) 1908 if (unlock_super)
1925 ocfs2_super_unlock(osb, 1); 1909 ocfs2_super_unlock(osb, 1);
1926 1910
1927 mlog_exit(status);
1928 return status; 1911 return status;
1929} 1912}
1930 1913
@@ -1934,7 +1917,7 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err)
1934 struct ocfs2_super *osb = NULL; 1917 struct ocfs2_super *osb = NULL;
1935 char nodestr[8]; 1918 char nodestr[8];
1936 1919
1937 mlog_entry("(0x%p)\n", sb); 1920 trace_ocfs2_dismount_volume(sb);
1938 1921
1939 BUG_ON(!sb); 1922 BUG_ON(!sb);
1940 osb = OCFS2_SB(sb); 1923 osb = OCFS2_SB(sb);
@@ -2086,8 +2069,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
2086 struct ocfs2_super *osb; 2069 struct ocfs2_super *osb;
2087 u64 total_blocks; 2070 u64 total_blocks;
2088 2071
2089 mlog_entry_void();
2090
2091 osb = kzalloc(sizeof(struct ocfs2_super), GFP_KERNEL); 2072 osb = kzalloc(sizeof(struct ocfs2_super), GFP_KERNEL);
2092 if (!osb) { 2073 if (!osb) {
2093 status = -ENOMEM; 2074 status = -ENOMEM;
@@ -2151,7 +2132,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
2151 status = -EINVAL; 2132 status = -EINVAL;
2152 goto bail; 2133 goto bail;
2153 } 2134 }
2154 mlog(0, "max_slots for this device: %u\n", osb->max_slots);
2155 2135
2156 ocfs2_orphan_scan_init(osb); 2136 ocfs2_orphan_scan_init(osb);
2157 2137
@@ -2290,7 +2270,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
2290 osb->s_clustersize_bits = 2270 osb->s_clustersize_bits =
2291 le32_to_cpu(di->id2.i_super.s_clustersize_bits); 2271 le32_to_cpu(di->id2.i_super.s_clustersize_bits);
2292 osb->s_clustersize = 1 << osb->s_clustersize_bits; 2272 osb->s_clustersize = 1 << osb->s_clustersize_bits;
2293 mlog(0, "clusterbits=%d\n", osb->s_clustersize_bits);
2294 2273
2295 if (osb->s_clustersize < OCFS2_MIN_CLUSTERSIZE || 2274 if (osb->s_clustersize < OCFS2_MIN_CLUSTERSIZE ||
2296 osb->s_clustersize > OCFS2_MAX_CLUSTERSIZE) { 2275 osb->s_clustersize > OCFS2_MAX_CLUSTERSIZE) {
@@ -2329,11 +2308,10 @@ static int ocfs2_initialize_super(struct super_block *sb,
2329 le64_to_cpu(di->id2.i_super.s_first_cluster_group); 2308 le64_to_cpu(di->id2.i_super.s_first_cluster_group);
2330 osb->fs_generation = le32_to_cpu(di->i_fs_generation); 2309 osb->fs_generation = le32_to_cpu(di->i_fs_generation);
2331 osb->uuid_hash = le32_to_cpu(di->id2.i_super.s_uuid_hash); 2310 osb->uuid_hash = le32_to_cpu(di->id2.i_super.s_uuid_hash);
2332 mlog(0, "vol_label: %s\n", osb->vol_label); 2311 trace_ocfs2_initialize_super(osb->vol_label, osb->uuid_str,
2333 mlog(0, "uuid: %s\n", osb->uuid_str); 2312 (unsigned long long)osb->root_blkno,
2334 mlog(0, "root_blkno=%llu, system_dir_blkno=%llu\n", 2313 (unsigned long long)osb->system_dir_blkno,
2335 (unsigned long long)osb->root_blkno, 2314 osb->s_clustersize_bits);
2336 (unsigned long long)osb->system_dir_blkno);
2337 2315
2338 osb->osb_dlm_debug = ocfs2_new_dlm_debug(); 2316 osb->osb_dlm_debug = ocfs2_new_dlm_debug();
2339 if (!osb->osb_dlm_debug) { 2317 if (!osb->osb_dlm_debug) {
@@ -2376,7 +2354,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
2376 } 2354 }
2377 2355
2378bail: 2356bail:
2379 mlog_exit(status);
2380 return status; 2357 return status;
2381} 2358}
2382 2359
@@ -2392,8 +2369,6 @@ static int ocfs2_verify_volume(struct ocfs2_dinode *di,
2392{ 2369{
2393 int status = -EAGAIN; 2370 int status = -EAGAIN;
2394 2371
2395 mlog_entry_void();
2396
2397 if (memcmp(di->i_signature, OCFS2_SUPER_BLOCK_SIGNATURE, 2372 if (memcmp(di->i_signature, OCFS2_SUPER_BLOCK_SIGNATURE,
2398 strlen(OCFS2_SUPER_BLOCK_SIGNATURE)) == 0) { 2373 strlen(OCFS2_SUPER_BLOCK_SIGNATURE)) == 0) {
2399 /* We have to do a raw check of the feature here */ 2374 /* We have to do a raw check of the feature here */
@@ -2448,7 +2423,8 @@ static int ocfs2_verify_volume(struct ocfs2_dinode *di,
2448 } 2423 }
2449 2424
2450out: 2425out:
2451 mlog_exit(status); 2426 if (status && status != -EAGAIN)
2427 mlog_errno(status);
2452 return status; 2428 return status;
2453} 2429}
2454 2430
@@ -2461,8 +2437,6 @@ static int ocfs2_check_volume(struct ocfs2_super *osb)
2461 * recover 2437 * recover
2462 * ourselves. */ 2438 * ourselves. */
2463 2439
2464 mlog_entry_void();
2465
2466 /* Init our journal object. */ 2440 /* Init our journal object. */
2467 status = ocfs2_journal_init(osb->journal, &dirty); 2441 status = ocfs2_journal_init(osb->journal, &dirty);
2468 if (status < 0) { 2442 if (status < 0) {
@@ -2512,8 +2486,6 @@ static int ocfs2_check_volume(struct ocfs2_super *osb)
2512 * ourselves as mounted. */ 2486 * ourselves as mounted. */
2513 } 2487 }
2514 2488
2515 mlog(0, "Journal loaded.\n");
2516
2517 status = ocfs2_load_local_alloc(osb); 2489 status = ocfs2_load_local_alloc(osb);
2518 if (status < 0) { 2490 if (status < 0) {
2519 mlog_errno(status); 2491 mlog_errno(status);
@@ -2545,7 +2517,8 @@ finally:
2545 if (local_alloc) 2517 if (local_alloc)
2546 kfree(local_alloc); 2518 kfree(local_alloc);
2547 2519
2548 mlog_exit(status); 2520 if (status)
2521 mlog_errno(status);
2549 return status; 2522 return status;
2550} 2523}
2551 2524
@@ -2557,8 +2530,6 @@ finally:
2557 */ 2530 */
2558static void ocfs2_delete_osb(struct ocfs2_super *osb) 2531static void ocfs2_delete_osb(struct ocfs2_super *osb)
2559{ 2532{
2560 mlog_entry_void();
2561
2562 /* This function assumes that the caller has the main osb resource */ 2533 /* This function assumes that the caller has the main osb resource */
2563 2534
2564 ocfs2_free_slot_info(osb); 2535 ocfs2_free_slot_info(osb);
@@ -2576,8 +2547,6 @@ static void ocfs2_delete_osb(struct ocfs2_super *osb)
2576 kfree(osb->uuid_str); 2547 kfree(osb->uuid_str);
2577 ocfs2_put_dlm_debug(osb->osb_dlm_debug); 2548 ocfs2_put_dlm_debug(osb->osb_dlm_debug);
2578 memset(osb, 0, sizeof(struct ocfs2_super)); 2549 memset(osb, 0, sizeof(struct ocfs2_super));
2579
2580 mlog_exit_void();
2581} 2550}
2582 2551
2583/* Put OCFS2 into a readonly state, or (if the user specifies it), 2552/* Put OCFS2 into a readonly state, or (if the user specifies it),