diff options
Diffstat (limited to 'fs/ocfs2/dlmglue.c')
| -rw-r--r-- | fs/ocfs2/dlmglue.c | 246 |
1 files changed, 56 insertions, 190 deletions
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index e8d94d722ecb..7642d7ca73e5 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
| @@ -64,7 +64,7 @@ struct ocfs2_mask_waiter { | |||
| 64 | unsigned long mw_mask; | 64 | unsigned long mw_mask; |
| 65 | unsigned long mw_goal; | 65 | unsigned long mw_goal; |
| 66 | #ifdef CONFIG_OCFS2_FS_STATS | 66 | #ifdef CONFIG_OCFS2_FS_STATS |
| 67 | unsigned long long mw_lock_start; | 67 | ktime_t mw_lock_start; |
| 68 | #endif | 68 | #endif |
| 69 | }; | 69 | }; |
| 70 | 70 | ||
| @@ -397,8 +397,6 @@ static void ocfs2_build_lock_name(enum ocfs2_lock_type type, | |||
| 397 | { | 397 | { |
| 398 | int len; | 398 | int len; |
| 399 | 399 | ||
| 400 | mlog_entry_void(); | ||
| 401 | |||
| 402 | BUG_ON(type >= OCFS2_NUM_LOCK_TYPES); | 400 | BUG_ON(type >= OCFS2_NUM_LOCK_TYPES); |
| 403 | 401 | ||
| 404 | len = snprintf(name, OCFS2_LOCK_ID_MAX_LEN, "%c%s%016llx%08x", | 402 | len = snprintf(name, OCFS2_LOCK_ID_MAX_LEN, "%c%s%016llx%08x", |
| @@ -408,8 +406,6 @@ static void ocfs2_build_lock_name(enum ocfs2_lock_type type, | |||
| 408 | BUG_ON(len != (OCFS2_LOCK_ID_MAX_LEN - 1)); | 406 | BUG_ON(len != (OCFS2_LOCK_ID_MAX_LEN - 1)); |
| 409 | 407 | ||
| 410 | mlog(0, "built lock resource with name: %s\n", name); | 408 | mlog(0, "built lock resource with name: %s\n", name); |
| 411 | |||
| 412 | mlog_exit_void(); | ||
| 413 | } | 409 | } |
| 414 | 410 | ||
| 415 | static DEFINE_SPINLOCK(ocfs2_dlm_tracking_lock); | 411 | static DEFINE_SPINLOCK(ocfs2_dlm_tracking_lock); |
| @@ -435,44 +431,41 @@ static void ocfs2_remove_lockres_tracking(struct ocfs2_lock_res *res) | |||
| 435 | #ifdef CONFIG_OCFS2_FS_STATS | 431 | #ifdef CONFIG_OCFS2_FS_STATS |
| 436 | static void ocfs2_init_lock_stats(struct ocfs2_lock_res *res) | 432 | static void ocfs2_init_lock_stats(struct ocfs2_lock_res *res) |
| 437 | { | 433 | { |
| 438 | res->l_lock_num_prmode = 0; | ||
| 439 | res->l_lock_num_prmode_failed = 0; | ||
| 440 | res->l_lock_total_prmode = 0; | ||
| 441 | res->l_lock_max_prmode = 0; | ||
| 442 | res->l_lock_num_exmode = 0; | ||
| 443 | res->l_lock_num_exmode_failed = 0; | ||
| 444 | res->l_lock_total_exmode = 0; | ||
| 445 | res->l_lock_max_exmode = 0; | ||
| 446 | res->l_lock_refresh = 0; | 434 | res->l_lock_refresh = 0; |
| 435 | memset(&res->l_lock_prmode, 0, sizeof(struct ocfs2_lock_stats)); | ||
| 436 | memset(&res->l_lock_exmode, 0, sizeof(struct ocfs2_lock_stats)); | ||
| 447 | } | 437 | } |
| 448 | 438 | ||
| 449 | static void ocfs2_update_lock_stats(struct ocfs2_lock_res *res, int level, | 439 | static void ocfs2_update_lock_stats(struct ocfs2_lock_res *res, int level, |
| 450 | struct ocfs2_mask_waiter *mw, int ret) | 440 | struct ocfs2_mask_waiter *mw, int ret) |
| 451 | { | 441 | { |
| 452 | unsigned long long *num, *sum; | 442 | u32 usec; |
| 453 | unsigned int *max, *failed; | 443 | ktime_t kt; |
| 454 | struct timespec ts = current_kernel_time(); | 444 | struct ocfs2_lock_stats *stats; |
| 455 | unsigned long long time = timespec_to_ns(&ts) - mw->mw_lock_start; | 445 | |
| 456 | 446 | if (level == LKM_PRMODE) | |
| 457 | if (level == LKM_PRMODE) { | 447 | stats = &res->l_lock_prmode; |
| 458 | num = &res->l_lock_num_prmode; | 448 | else if (level == LKM_EXMODE) |
| 459 | sum = &res->l_lock_total_prmode; | 449 | stats = &res->l_lock_exmode; |
| 460 | max = &res->l_lock_max_prmode; | 450 | else |
| 461 | failed = &res->l_lock_num_prmode_failed; | ||
| 462 | } else if (level == LKM_EXMODE) { | ||
| 463 | num = &res->l_lock_num_exmode; | ||
| 464 | sum = &res->l_lock_total_exmode; | ||
| 465 | max = &res->l_lock_max_exmode; | ||
| 466 | failed = &res->l_lock_num_exmode_failed; | ||
| 467 | } else | ||
| 468 | return; | 451 | return; |
| 469 | 452 | ||
| 470 | (*num)++; | 453 | kt = ktime_sub(ktime_get(), mw->mw_lock_start); |
| 471 | (*sum) += time; | 454 | usec = ktime_to_us(kt); |
| 472 | if (time > *max) | 455 | |
| 473 | *max = time; | 456 | stats->ls_gets++; |
| 457 | stats->ls_total += ktime_to_ns(kt); | ||
| 458 | /* overflow */ | ||
| 459 | if (unlikely(stats->ls_gets) == 0) { | ||
| 460 | stats->ls_gets++; | ||
| 461 | stats->ls_total = ktime_to_ns(kt); | ||
| 462 | } | ||
| 463 | |||
| 464 | if (stats->ls_max < usec) | ||
| 465 | stats->ls_max = usec; | ||
| 466 | |||
| 474 | if (ret) | 467 | if (ret) |
| 475 | (*failed)++; | 468 | stats->ls_fail++; |
| 476 | } | 469 | } |
| 477 | 470 | ||
| 478 | static inline void ocfs2_track_lock_refresh(struct ocfs2_lock_res *lockres) | 471 | static inline void ocfs2_track_lock_refresh(struct ocfs2_lock_res *lockres) |
| @@ -482,8 +475,7 @@ static inline void ocfs2_track_lock_refresh(struct ocfs2_lock_res *lockres) | |||
| 482 | 475 | ||
| 483 | static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) | 476 | static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) |
| 484 | { | 477 | { |
| 485 | struct timespec ts = current_kernel_time(); | 478 | mw->mw_lock_start = ktime_get(); |
| 486 | mw->mw_lock_start = timespec_to_ns(&ts); | ||
| 487 | } | 479 | } |
| 488 | #else | 480 | #else |
| 489 | static inline void ocfs2_init_lock_stats(struct ocfs2_lock_res *res) | 481 | static inline void ocfs2_init_lock_stats(struct ocfs2_lock_res *res) |
| @@ -729,8 +721,6 @@ void ocfs2_refcount_lock_res_init(struct ocfs2_lock_res *lockres, | |||
| 729 | 721 | ||
| 730 | void ocfs2_lock_res_free(struct ocfs2_lock_res *res) | 722 | void ocfs2_lock_res_free(struct ocfs2_lock_res *res) |
| 731 | { | 723 | { |
| 732 | mlog_entry_void(); | ||
| 733 | |||
| 734 | if (!(res->l_flags & OCFS2_LOCK_INITIALIZED)) | 724 | if (!(res->l_flags & OCFS2_LOCK_INITIALIZED)) |
| 735 | return; | 725 | return; |
| 736 | 726 | ||
| @@ -756,14 +746,11 @@ void ocfs2_lock_res_free(struct ocfs2_lock_res *res) | |||
| 756 | memset(&res->l_lksb, 0, sizeof(res->l_lksb)); | 746 | memset(&res->l_lksb, 0, sizeof(res->l_lksb)); |
| 757 | 747 | ||
| 758 | res->l_flags = 0UL; | 748 | res->l_flags = 0UL; |
| 759 | mlog_exit_void(); | ||
| 760 | } | 749 | } |
| 761 | 750 | ||
| 762 | static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres, | 751 | static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres, |
| 763 | int level) | 752 | int level) |
| 764 | { | 753 | { |
| 765 | mlog_entry_void(); | ||
| 766 | |||
| 767 | BUG_ON(!lockres); | 754 | BUG_ON(!lockres); |
| 768 | 755 | ||
| 769 | switch(level) { | 756 | switch(level) { |
| @@ -776,15 +763,11 @@ static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres, | |||
| 776 | default: | 763 | default: |
| 777 | BUG(); | 764 | BUG(); |
| 778 | } | 765 | } |
| 779 | |||
| 780 | mlog_exit_void(); | ||
| 781 | } | 766 | } |
| 782 | 767 | ||
| 783 | static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres, | 768 | static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres, |
| 784 | int level) | 769 | int level) |
| 785 | { | 770 | { |
| 786 | mlog_entry_void(); | ||
| 787 | |||
| 788 | BUG_ON(!lockres); | 771 | BUG_ON(!lockres); |
| 789 | 772 | ||
| 790 | switch(level) { | 773 | switch(level) { |
| @@ -799,7 +782,6 @@ static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres, | |||
| 799 | default: | 782 | default: |
| 800 | BUG(); | 783 | BUG(); |
| 801 | } | 784 | } |
| 802 | mlog_exit_void(); | ||
| 803 | } | 785 | } |
| 804 | 786 | ||
| 805 | /* WARNING: This function lives in a world where the only three lock | 787 | /* WARNING: This function lives in a world where the only three lock |
| @@ -846,8 +828,6 @@ static void lockres_clear_flags(struct ocfs2_lock_res *lockres, | |||
| 846 | 828 | ||
| 847 | static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres) | 829 | static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres) |
| 848 | { | 830 | { |
| 849 | mlog_entry_void(); | ||
| 850 | |||
| 851 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY)); | 831 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY)); |
| 852 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED)); | 832 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED)); |
| 853 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED)); | 833 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED)); |
| @@ -860,14 +840,10 @@ static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res | |||
| 860 | lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED); | 840 | lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED); |
| 861 | } | 841 | } |
| 862 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 842 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
| 863 | |||
| 864 | mlog_exit_void(); | ||
| 865 | } | 843 | } |
| 866 | 844 | ||
| 867 | static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres) | 845 | static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres) |
| 868 | { | 846 | { |
| 869 | mlog_entry_void(); | ||
| 870 | |||
| 871 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY)); | 847 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY)); |
| 872 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED)); | 848 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED)); |
| 873 | 849 | ||
| @@ -889,14 +865,10 @@ static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lo | |||
| 889 | lockres_or_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); | 865 | lockres_or_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); |
| 890 | 866 | ||
| 891 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 867 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
| 892 | |||
| 893 | mlog_exit_void(); | ||
| 894 | } | 868 | } |
| 895 | 869 | ||
| 896 | static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres) | 870 | static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres) |
| 897 | { | 871 | { |
| 898 | mlog_entry_void(); | ||
| 899 | |||
| 900 | BUG_ON((!(lockres->l_flags & OCFS2_LOCK_BUSY))); | 872 | BUG_ON((!(lockres->l_flags & OCFS2_LOCK_BUSY))); |
| 901 | BUG_ON(lockres->l_flags & OCFS2_LOCK_ATTACHED); | 873 | BUG_ON(lockres->l_flags & OCFS2_LOCK_ATTACHED); |
| 902 | 874 | ||
| @@ -908,15 +880,12 @@ static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *loc | |||
| 908 | lockres->l_level = lockres->l_requested; | 880 | lockres->l_level = lockres->l_requested; |
| 909 | lockres_or_flags(lockres, OCFS2_LOCK_ATTACHED); | 881 | lockres_or_flags(lockres, OCFS2_LOCK_ATTACHED); |
| 910 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 882 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
| 911 | |||
| 912 | mlog_exit_void(); | ||
| 913 | } | 883 | } |
| 914 | 884 | ||
| 915 | static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, | 885 | static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, |
| 916 | int level) | 886 | int level) |
| 917 | { | 887 | { |
| 918 | int needs_downconvert = 0; | 888 | int needs_downconvert = 0; |
| 919 | mlog_entry_void(); | ||
| 920 | 889 | ||
| 921 | assert_spin_locked(&lockres->l_lock); | 890 | assert_spin_locked(&lockres->l_lock); |
| 922 | 891 | ||
| @@ -938,8 +907,7 @@ static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, | |||
| 938 | 907 | ||
| 939 | if (needs_downconvert) | 908 | if (needs_downconvert) |
| 940 | lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED); | 909 | lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED); |
| 941 | 910 | mlog(0, "needs_downconvert = %d\n", needs_downconvert); | |
| 942 | mlog_exit(needs_downconvert); | ||
| 943 | return needs_downconvert; | 911 | return needs_downconvert; |
| 944 | } | 912 | } |
| 945 | 913 | ||
| @@ -1151,8 +1119,6 @@ static void ocfs2_unlock_ast(struct ocfs2_dlm_lksb *lksb, int error) | |||
| 1151 | struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb); | 1119 | struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb); |
| 1152 | unsigned long flags; | 1120 | unsigned long flags; |
| 1153 | 1121 | ||
| 1154 | mlog_entry_void(); | ||
| 1155 | |||
| 1156 | mlog(ML_BASTS, "UNLOCK AST fired for lockres %s, action = %d\n", | 1122 | mlog(ML_BASTS, "UNLOCK AST fired for lockres %s, action = %d\n", |
| 1157 | lockres->l_name, lockres->l_unlock_action); | 1123 | lockres->l_name, lockres->l_unlock_action); |
| 1158 | 1124 | ||
| @@ -1162,7 +1128,6 @@ static void ocfs2_unlock_ast(struct ocfs2_dlm_lksb *lksb, int error) | |||
| 1162 | "unlock_action %d\n", error, lockres->l_name, | 1128 | "unlock_action %d\n", error, lockres->l_name, |
| 1163 | lockres->l_unlock_action); | 1129 | lockres->l_unlock_action); |
| 1164 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 1130 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
| 1165 | mlog_exit_void(); | ||
| 1166 | return; | 1131 | return; |
| 1167 | } | 1132 | } |
| 1168 | 1133 | ||
| @@ -1186,8 +1151,6 @@ static void ocfs2_unlock_ast(struct ocfs2_dlm_lksb *lksb, int error) | |||
| 1186 | lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; | 1151 | lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; |
| 1187 | wake_up(&lockres->l_event); | 1152 | wake_up(&lockres->l_event); |
| 1188 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 1153 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
| 1189 | |||
| 1190 | mlog_exit_void(); | ||
| 1191 | } | 1154 | } |
| 1192 | 1155 | ||
| 1193 | /* | 1156 | /* |
| @@ -1233,7 +1196,6 @@ static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres, | |||
| 1233 | { | 1196 | { |
| 1234 | unsigned long flags; | 1197 | unsigned long flags; |
| 1235 | 1198 | ||
| 1236 | mlog_entry_void(); | ||
| 1237 | spin_lock_irqsave(&lockres->l_lock, flags); | 1199 | spin_lock_irqsave(&lockres->l_lock, flags); |
| 1238 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 1200 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
| 1239 | lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); | 1201 | lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); |
| @@ -1244,7 +1206,6 @@ static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres, | |||
| 1244 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 1206 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
| 1245 | 1207 | ||
| 1246 | wake_up(&lockres->l_event); | 1208 | wake_up(&lockres->l_event); |
| 1247 | mlog_exit_void(); | ||
| 1248 | } | 1209 | } |
| 1249 | 1210 | ||
| 1250 | /* Note: If we detect another process working on the lock (i.e., | 1211 | /* Note: If we detect another process working on the lock (i.e., |
| @@ -1260,8 +1221,6 @@ static int ocfs2_lock_create(struct ocfs2_super *osb, | |||
| 1260 | unsigned long flags; | 1221 | unsigned long flags; |
| 1261 | unsigned int gen; | 1222 | unsigned int gen; |
| 1262 | 1223 | ||
| 1263 | mlog_entry_void(); | ||
| 1264 | |||
| 1265 | mlog(0, "lock %s, level = %d, flags = %u\n", lockres->l_name, level, | 1224 | mlog(0, "lock %s, level = %d, flags = %u\n", lockres->l_name, level, |
| 1266 | dlm_flags); | 1225 | dlm_flags); |
| 1267 | 1226 | ||
| @@ -1293,7 +1252,6 @@ static int ocfs2_lock_create(struct ocfs2_super *osb, | |||
| 1293 | mlog(0, "lock %s, return from ocfs2_dlm_lock\n", lockres->l_name); | 1252 | mlog(0, "lock %s, return from ocfs2_dlm_lock\n", lockres->l_name); |
| 1294 | 1253 | ||
| 1295 | bail: | 1254 | bail: |
| 1296 | mlog_exit(ret); | ||
| 1297 | return ret; | 1255 | return ret; |
| 1298 | } | 1256 | } |
| 1299 | 1257 | ||
| @@ -1416,8 +1374,6 @@ static int __ocfs2_cluster_lock(struct ocfs2_super *osb, | |||
| 1416 | unsigned int gen; | 1374 | unsigned int gen; |
| 1417 | int noqueue_attempted = 0; | 1375 | int noqueue_attempted = 0; |
| 1418 | 1376 | ||
| 1419 | mlog_entry_void(); | ||
| 1420 | |||
| 1421 | ocfs2_init_mask_waiter(&mw); | 1377 | ocfs2_init_mask_waiter(&mw); |
| 1422 | 1378 | ||
| 1423 | if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB) | 1379 | if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB) |
| @@ -1583,7 +1539,6 @@ out: | |||
| 1583 | caller_ip); | 1539 | caller_ip); |
| 1584 | } | 1540 | } |
| 1585 | #endif | 1541 | #endif |
| 1586 | mlog_exit(ret); | ||
| 1587 | return ret; | 1542 | return ret; |
| 1588 | } | 1543 | } |
| 1589 | 1544 | ||
| @@ -1605,7 +1560,6 @@ static void __ocfs2_cluster_unlock(struct ocfs2_super *osb, | |||
| 1605 | { | 1560 | { |
| 1606 | unsigned long flags; | 1561 | unsigned long flags; |
| 1607 | 1562 | ||
| 1608 | mlog_entry_void(); | ||
| 1609 | spin_lock_irqsave(&lockres->l_lock, flags); | 1563 | spin_lock_irqsave(&lockres->l_lock, flags); |
| 1610 | ocfs2_dec_holders(lockres, level); | 1564 | ocfs2_dec_holders(lockres, level); |
| 1611 | ocfs2_downconvert_on_unlock(osb, lockres); | 1565 | ocfs2_downconvert_on_unlock(osb, lockres); |
| @@ -1614,7 +1568,6 @@ static void __ocfs2_cluster_unlock(struct ocfs2_super *osb, | |||
| 1614 | if (lockres->l_lockdep_map.key != NULL) | 1568 | if (lockres->l_lockdep_map.key != NULL) |
| 1615 | rwsem_release(&lockres->l_lockdep_map, 1, caller_ip); | 1569 | rwsem_release(&lockres->l_lockdep_map, 1, caller_ip); |
| 1616 | #endif | 1570 | #endif |
| 1617 | mlog_exit_void(); | ||
| 1618 | } | 1571 | } |
| 1619 | 1572 | ||
| 1620 | static int ocfs2_create_new_lock(struct ocfs2_super *osb, | 1573 | static int ocfs2_create_new_lock(struct ocfs2_super *osb, |
| @@ -1648,8 +1601,6 @@ int ocfs2_create_new_inode_locks(struct inode *inode) | |||
| 1648 | BUG_ON(!inode); | 1601 | BUG_ON(!inode); |
| 1649 | BUG_ON(!ocfs2_inode_is_new(inode)); | 1602 | BUG_ON(!ocfs2_inode_is_new(inode)); |
| 1650 | 1603 | ||
| 1651 | mlog_entry_void(); | ||
| 1652 | |||
| 1653 | mlog(0, "Inode %llu\n", (unsigned long long)OCFS2_I(inode)->ip_blkno); | 1604 | mlog(0, "Inode %llu\n", (unsigned long long)OCFS2_I(inode)->ip_blkno); |
| 1654 | 1605 | ||
| 1655 | /* NOTE: That we don't increment any of the holder counts, nor | 1606 | /* NOTE: That we don't increment any of the holder counts, nor |
| @@ -1683,7 +1634,6 @@ int ocfs2_create_new_inode_locks(struct inode *inode) | |||
| 1683 | } | 1634 | } |
| 1684 | 1635 | ||
| 1685 | bail: | 1636 | bail: |
| 1686 | mlog_exit(ret); | ||
| 1687 | return ret; | 1637 | return ret; |
| 1688 | } | 1638 | } |
| 1689 | 1639 | ||
| @@ -1695,16 +1645,12 @@ int ocfs2_rw_lock(struct inode *inode, int write) | |||
| 1695 | 1645 | ||
| 1696 | BUG_ON(!inode); | 1646 | BUG_ON(!inode); |
| 1697 | 1647 | ||
| 1698 | mlog_entry_void(); | ||
| 1699 | |||
| 1700 | mlog(0, "inode %llu take %s RW lock\n", | 1648 | mlog(0, "inode %llu take %s RW lock\n", |
| 1701 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 1649 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| 1702 | write ? "EXMODE" : "PRMODE"); | 1650 | write ? "EXMODE" : "PRMODE"); |
| 1703 | 1651 | ||
| 1704 | if (ocfs2_mount_local(osb)) { | 1652 | if (ocfs2_mount_local(osb)) |
| 1705 | mlog_exit(0); | ||
| 1706 | return 0; | 1653 | return 0; |
| 1707 | } | ||
| 1708 | 1654 | ||
| 1709 | lockres = &OCFS2_I(inode)->ip_rw_lockres; | 1655 | lockres = &OCFS2_I(inode)->ip_rw_lockres; |
| 1710 | 1656 | ||
| @@ -1715,7 +1661,6 @@ int ocfs2_rw_lock(struct inode *inode, int write) | |||
| 1715 | if (status < 0) | 1661 | if (status < 0) |
| 1716 | mlog_errno(status); | 1662 | mlog_errno(status); |
| 1717 | 1663 | ||
| 1718 | mlog_exit(status); | ||
| 1719 | return status; | 1664 | return status; |
| 1720 | } | 1665 | } |
| 1721 | 1666 | ||
| @@ -1725,16 +1670,12 @@ void ocfs2_rw_unlock(struct inode *inode, int write) | |||
| 1725 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_rw_lockres; | 1670 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_rw_lockres; |
| 1726 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 1671 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
| 1727 | 1672 | ||
| 1728 | mlog_entry_void(); | ||
| 1729 | |||
| 1730 | mlog(0, "inode %llu drop %s RW lock\n", | 1673 | mlog(0, "inode %llu drop %s RW lock\n", |
| 1731 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 1674 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| 1732 | write ? "EXMODE" : "PRMODE"); | 1675 | write ? "EXMODE" : "PRMODE"); |
| 1733 | 1676 | ||
| 1734 | if (!ocfs2_mount_local(osb)) | 1677 | if (!ocfs2_mount_local(osb)) |
| 1735 | ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level); | 1678 | ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level); |
| 1736 | |||
| 1737 | mlog_exit_void(); | ||
| 1738 | } | 1679 | } |
| 1739 | 1680 | ||
| 1740 | /* | 1681 | /* |
| @@ -1748,8 +1689,6 @@ int ocfs2_open_lock(struct inode *inode) | |||
| 1748 | 1689 | ||
| 1749 | BUG_ON(!inode); | 1690 | BUG_ON(!inode); |
| 1750 | 1691 | ||
| 1751 | mlog_entry_void(); | ||
| 1752 | |||
| 1753 | mlog(0, "inode %llu take PRMODE open lock\n", | 1692 | mlog(0, "inode %llu take PRMODE open lock\n", |
| 1754 | (unsigned long long)OCFS2_I(inode)->ip_blkno); | 1693 | (unsigned long long)OCFS2_I(inode)->ip_blkno); |
| 1755 | 1694 | ||
| @@ -1764,7 +1703,6 @@ int ocfs2_open_lock(struct inode *inode) | |||
| 1764 | mlog_errno(status); | 1703 | mlog_errno(status); |
| 1765 | 1704 | ||
| 1766 | out: | 1705 | out: |
| 1767 | mlog_exit(status); | ||
| 1768 | return status; | 1706 | return status; |
| 1769 | } | 1707 | } |
| 1770 | 1708 | ||
| @@ -1776,8 +1714,6 @@ int ocfs2_try_open_lock(struct inode *inode, int write) | |||
| 1776 | 1714 | ||
| 1777 | BUG_ON(!inode); | 1715 | BUG_ON(!inode); |
| 1778 | 1716 | ||
| 1779 | mlog_entry_void(); | ||
| 1780 | |||
| 1781 | mlog(0, "inode %llu try to take %s open lock\n", | 1717 | mlog(0, "inode %llu try to take %s open lock\n", |
| 1782 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 1718 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| 1783 | write ? "EXMODE" : "PRMODE"); | 1719 | write ? "EXMODE" : "PRMODE"); |
| @@ -1799,7 +1735,6 @@ int ocfs2_try_open_lock(struct inode *inode, int write) | |||
| 1799 | level, DLM_LKF_NOQUEUE, 0); | 1735 | level, DLM_LKF_NOQUEUE, 0); |
| 1800 | 1736 | ||
| 1801 | out: | 1737 | out: |
| 1802 | mlog_exit(status); | ||
| 1803 | return status; | 1738 | return status; |
| 1804 | } | 1739 | } |
| 1805 | 1740 | ||
| @@ -1811,8 +1746,6 @@ void ocfs2_open_unlock(struct inode *inode) | |||
| 1811 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_open_lockres; | 1746 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_open_lockres; |
| 1812 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 1747 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
| 1813 | 1748 | ||
| 1814 | mlog_entry_void(); | ||
| 1815 | |||
| 1816 | mlog(0, "inode %llu drop open lock\n", | 1749 | mlog(0, "inode %llu drop open lock\n", |
| 1817 | (unsigned long long)OCFS2_I(inode)->ip_blkno); | 1750 | (unsigned long long)OCFS2_I(inode)->ip_blkno); |
| 1818 | 1751 | ||
| @@ -1827,7 +1760,7 @@ void ocfs2_open_unlock(struct inode *inode) | |||
| 1827 | DLM_LOCK_EX); | 1760 | DLM_LOCK_EX); |
| 1828 | 1761 | ||
| 1829 | out: | 1762 | out: |
| 1830 | mlog_exit_void(); | 1763 | return; |
| 1831 | } | 1764 | } |
| 1832 | 1765 | ||
| 1833 | static int ocfs2_flock_handle_signal(struct ocfs2_lock_res *lockres, | 1766 | static int ocfs2_flock_handle_signal(struct ocfs2_lock_res *lockres, |
| @@ -2043,8 +1976,6 @@ static void ocfs2_downconvert_on_unlock(struct ocfs2_super *osb, | |||
| 2043 | { | 1976 | { |
| 2044 | int kick = 0; | 1977 | int kick = 0; |
| 2045 | 1978 | ||
| 2046 | mlog_entry_void(); | ||
| 2047 | |||
| 2048 | /* If we know that another node is waiting on our lock, kick | 1979 | /* If we know that another node is waiting on our lock, kick |
| 2049 | * the downconvert thread * pre-emptively when we reach a release | 1980 | * the downconvert thread * pre-emptively when we reach a release |
| 2050 | * condition. */ | 1981 | * condition. */ |
| @@ -2065,8 +1996,6 @@ static void ocfs2_downconvert_on_unlock(struct ocfs2_super *osb, | |||
| 2065 | 1996 | ||
| 2066 | if (kick) | 1997 | if (kick) |
| 2067 | ocfs2_wake_downconvert_thread(osb); | 1998 | ocfs2_wake_downconvert_thread(osb); |
| 2068 | |||
| 2069 | mlog_exit_void(); | ||
| 2070 | } | 1999 | } |
| 2071 | 2000 | ||
| 2072 | #define OCFS2_SEC_BITS 34 | 2001 | #define OCFS2_SEC_BITS 34 |
| @@ -2095,8 +2024,6 @@ static void __ocfs2_stuff_meta_lvb(struct inode *inode) | |||
| 2095 | struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres; | 2024 | struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres; |
| 2096 | struct ocfs2_meta_lvb *lvb; | 2025 | struct ocfs2_meta_lvb *lvb; |
| 2097 | 2026 | ||
| 2098 | mlog_entry_void(); | ||
| 2099 | |||
| 2100 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); | 2027 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); |
| 2101 | 2028 | ||
| 2102 | /* | 2029 | /* |
| @@ -2128,8 +2055,6 @@ static void __ocfs2_stuff_meta_lvb(struct inode *inode) | |||
| 2128 | 2055 | ||
| 2129 | out: | 2056 | out: |
| 2130 | mlog_meta_lvb(0, lockres); | 2057 | mlog_meta_lvb(0, lockres); |
| 2131 | |||
| 2132 | mlog_exit_void(); | ||
| 2133 | } | 2058 | } |
| 2134 | 2059 | ||
| 2135 | static void ocfs2_unpack_timespec(struct timespec *spec, | 2060 | static void ocfs2_unpack_timespec(struct timespec *spec, |
| @@ -2145,8 +2070,6 @@ static void ocfs2_refresh_inode_from_lvb(struct inode *inode) | |||
| 2145 | struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres; | 2070 | struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres; |
| 2146 | struct ocfs2_meta_lvb *lvb; | 2071 | struct ocfs2_meta_lvb *lvb; |
| 2147 | 2072 | ||
| 2148 | mlog_entry_void(); | ||
| 2149 | |||
| 2150 | mlog_meta_lvb(0, lockres); | 2073 | mlog_meta_lvb(0, lockres); |
| 2151 | 2074 | ||
| 2152 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); | 2075 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); |
| @@ -2177,8 +2100,6 @@ static void ocfs2_refresh_inode_from_lvb(struct inode *inode) | |||
| 2177 | ocfs2_unpack_timespec(&inode->i_ctime, | 2100 | ocfs2_unpack_timespec(&inode->i_ctime, |
| 2178 | be64_to_cpu(lvb->lvb_ictime_packed)); | 2101 | be64_to_cpu(lvb->lvb_ictime_packed)); |
| 2179 | spin_unlock(&oi->ip_lock); | 2102 | spin_unlock(&oi->ip_lock); |
| 2180 | |||
| 2181 | mlog_exit_void(); | ||
| 2182 | } | 2103 | } |
| 2183 | 2104 | ||
| 2184 | static inline int ocfs2_meta_lvb_is_trustable(struct inode *inode, | 2105 | static inline int ocfs2_meta_lvb_is_trustable(struct inode *inode, |
| @@ -2205,8 +2126,6 @@ static int ocfs2_should_refresh_lock_res(struct ocfs2_lock_res *lockres) | |||
| 2205 | unsigned long flags; | 2126 | unsigned long flags; |
| 2206 | int status = 0; | 2127 | int status = 0; |
| 2207 | 2128 | ||
| 2208 | mlog_entry_void(); | ||
| 2209 | |||
| 2210 | refresh_check: | 2129 | refresh_check: |
| 2211 | spin_lock_irqsave(&lockres->l_lock, flags); | 2130 | spin_lock_irqsave(&lockres->l_lock, flags); |
| 2212 | if (!(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH)) { | 2131 | if (!(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH)) { |
| @@ -2227,7 +2146,7 @@ refresh_check: | |||
| 2227 | 2146 | ||
| 2228 | status = 1; | 2147 | status = 1; |
| 2229 | bail: | 2148 | bail: |
| 2230 | mlog_exit(status); | 2149 | mlog(0, "status %d\n", status); |
| 2231 | return status; | 2150 | return status; |
| 2232 | } | 2151 | } |
| 2233 | 2152 | ||
| @@ -2237,7 +2156,6 @@ static inline void ocfs2_complete_lock_res_refresh(struct ocfs2_lock_res *lockre | |||
| 2237 | int status) | 2156 | int status) |
| 2238 | { | 2157 | { |
| 2239 | unsigned long flags; | 2158 | unsigned long flags; |
| 2240 | mlog_entry_void(); | ||
| 2241 | 2159 | ||
| 2242 | spin_lock_irqsave(&lockres->l_lock, flags); | 2160 | spin_lock_irqsave(&lockres->l_lock, flags); |
| 2243 | lockres_clear_flags(lockres, OCFS2_LOCK_REFRESHING); | 2161 | lockres_clear_flags(lockres, OCFS2_LOCK_REFRESHING); |
| @@ -2246,8 +2164,6 @@ static inline void ocfs2_complete_lock_res_refresh(struct ocfs2_lock_res *lockre | |||
| 2246 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 2164 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
| 2247 | 2165 | ||
| 2248 | wake_up(&lockres->l_event); | 2166 | wake_up(&lockres->l_event); |
| 2249 | |||
| 2250 | mlog_exit_void(); | ||
| 2251 | } | 2167 | } |
| 2252 | 2168 | ||
| 2253 | /* may or may not return a bh if it went to disk. */ | 2169 | /* may or may not return a bh if it went to disk. */ |
| @@ -2260,8 +2176,6 @@ static int ocfs2_inode_lock_update(struct inode *inode, | |||
| 2260 | struct ocfs2_dinode *fe; | 2176 | struct ocfs2_dinode *fe; |
| 2261 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 2177 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
| 2262 | 2178 | ||
| 2263 | mlog_entry_void(); | ||
| 2264 | |||
| 2265 | if (ocfs2_mount_local(osb)) | 2179 | if (ocfs2_mount_local(osb)) |
| 2266 | goto bail; | 2180 | goto bail; |
| 2267 | 2181 | ||
| @@ -2330,7 +2244,6 @@ static int ocfs2_inode_lock_update(struct inode *inode, | |||
| 2330 | bail_refresh: | 2244 | bail_refresh: |
| 2331 | ocfs2_complete_lock_res_refresh(lockres, status); | 2245 | ocfs2_complete_lock_res_refresh(lockres, status); |
| 2332 | bail: | 2246 | bail: |
| 2333 | mlog_exit(status); | ||
| 2334 | return status; | 2247 | return status; |
| 2335 | } | 2248 | } |
| 2336 | 2249 | ||
| @@ -2374,8 +2287,6 @@ int ocfs2_inode_lock_full_nested(struct inode *inode, | |||
| 2374 | 2287 | ||
| 2375 | BUG_ON(!inode); | 2288 | BUG_ON(!inode); |
| 2376 | 2289 | ||
| 2377 | mlog_entry_void(); | ||
| 2378 | |||
| 2379 | mlog(0, "inode %llu, take %s META lock\n", | 2290 | mlog(0, "inode %llu, take %s META lock\n", |
| 2380 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 2291 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| 2381 | ex ? "EXMODE" : "PRMODE"); | 2292 | ex ? "EXMODE" : "PRMODE"); |
| @@ -2467,7 +2378,6 @@ bail: | |||
| 2467 | if (local_bh) | 2378 | if (local_bh) |
| 2468 | brelse(local_bh); | 2379 | brelse(local_bh); |
| 2469 | 2380 | ||
| 2470 | mlog_exit(status); | ||
| 2471 | return status; | 2381 | return status; |
| 2472 | } | 2382 | } |
| 2473 | 2383 | ||
| @@ -2517,7 +2427,6 @@ int ocfs2_inode_lock_atime(struct inode *inode, | |||
| 2517 | { | 2427 | { |
| 2518 | int ret; | 2428 | int ret; |
| 2519 | 2429 | ||
| 2520 | mlog_entry_void(); | ||
| 2521 | ret = ocfs2_inode_lock(inode, NULL, 0); | 2430 | ret = ocfs2_inode_lock(inode, NULL, 0); |
| 2522 | if (ret < 0) { | 2431 | if (ret < 0) { |
| 2523 | mlog_errno(ret); | 2432 | mlog_errno(ret); |
| @@ -2545,7 +2454,6 @@ int ocfs2_inode_lock_atime(struct inode *inode, | |||
| 2545 | } else | 2454 | } else |
| 2546 | *level = 0; | 2455 | *level = 0; |
| 2547 | 2456 | ||
| 2548 | mlog_exit(ret); | ||
| 2549 | return ret; | 2457 | return ret; |
| 2550 | } | 2458 | } |
| 2551 | 2459 | ||
| @@ -2556,8 +2464,6 @@ void ocfs2_inode_unlock(struct inode *inode, | |||
| 2556 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_inode_lockres; | 2464 | struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_inode_lockres; |
| 2557 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 2465 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
| 2558 | 2466 | ||
| 2559 | mlog_entry_void(); | ||
| 2560 | |||
| 2561 | mlog(0, "inode %llu drop %s META lock\n", | 2467 | mlog(0, "inode %llu drop %s META lock\n", |
| 2562 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 2468 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| 2563 | ex ? "EXMODE" : "PRMODE"); | 2469 | ex ? "EXMODE" : "PRMODE"); |
| @@ -2565,8 +2471,6 @@ void ocfs2_inode_unlock(struct inode *inode, | |||
| 2565 | if (!ocfs2_is_hard_readonly(OCFS2_SB(inode->i_sb)) && | 2471 | if (!ocfs2_is_hard_readonly(OCFS2_SB(inode->i_sb)) && |
| 2566 | !ocfs2_mount_local(osb)) | 2472 | !ocfs2_mount_local(osb)) |
| 2567 | ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level); | 2473 | ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level); |
| 2568 | |||
| 2569 | mlog_exit_void(); | ||
| 2570 | } | 2474 | } |
| 2571 | 2475 | ||
| 2572 | int ocfs2_orphan_scan_lock(struct ocfs2_super *osb, u32 *seqno) | 2476 | int ocfs2_orphan_scan_lock(struct ocfs2_super *osb, u32 *seqno) |
| @@ -2617,8 +2521,6 @@ int ocfs2_super_lock(struct ocfs2_super *osb, | |||
| 2617 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; | 2521 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; |
| 2618 | struct ocfs2_lock_res *lockres = &osb->osb_super_lockres; | 2522 | struct ocfs2_lock_res *lockres = &osb->osb_super_lockres; |
| 2619 | 2523 | ||
| 2620 | mlog_entry_void(); | ||
| 2621 | |||
| 2622 | if (ocfs2_is_hard_readonly(osb)) | 2524 | if (ocfs2_is_hard_readonly(osb)) |
| 2623 | return -EROFS; | 2525 | return -EROFS; |
| 2624 | 2526 | ||
| @@ -2650,7 +2552,6 @@ int ocfs2_super_lock(struct ocfs2_super *osb, | |||
| 2650 | ocfs2_track_lock_refresh(lockres); | 2552 | ocfs2_track_lock_refresh(lockres); |
| 2651 | } | 2553 | } |
| 2652 | bail: | 2554 | bail: |
| 2653 | mlog_exit(status); | ||
| 2654 | return status; | 2555 | return status; |
| 2655 | } | 2556 | } |
| 2656 | 2557 | ||
| @@ -2869,8 +2770,15 @@ static void *ocfs2_dlm_seq_next(struct seq_file *m, void *v, loff_t *pos) | |||
| 2869 | return iter; | 2770 | return iter; |
| 2870 | } | 2771 | } |
| 2871 | 2772 | ||
| 2872 | /* So that debugfs.ocfs2 can determine which format is being used */ | 2773 | /* |
| 2873 | #define OCFS2_DLM_DEBUG_STR_VERSION 2 | 2774 | * Version is used by debugfs.ocfs2 to determine the format being used |
| 2775 | * | ||
| 2776 | * New in version 2 | ||
| 2777 | * - Lock stats printed | ||
| 2778 | * New in version 3 | ||
| 2779 | * - Max time in lock stats is in usecs (instead of nsecs) | ||
| 2780 | */ | ||
| 2781 | #define OCFS2_DLM_DEBUG_STR_VERSION 3 | ||
| 2874 | static int ocfs2_dlm_seq_show(struct seq_file *m, void *v) | 2782 | static int ocfs2_dlm_seq_show(struct seq_file *m, void *v) |
| 2875 | { | 2783 | { |
| 2876 | int i; | 2784 | int i; |
| @@ -2912,18 +2820,18 @@ static int ocfs2_dlm_seq_show(struct seq_file *m, void *v) | |||
| 2912 | seq_printf(m, "0x%x\t", lvb[i]); | 2820 | seq_printf(m, "0x%x\t", lvb[i]); |
| 2913 | 2821 | ||
| 2914 | #ifdef CONFIG_OCFS2_FS_STATS | 2822 | #ifdef CONFIG_OCFS2_FS_STATS |
| 2915 | # define lock_num_prmode(_l) (_l)->l_lock_num_prmode | 2823 | # define lock_num_prmode(_l) ((_l)->l_lock_prmode.ls_gets) |
| 2916 | # define lock_num_exmode(_l) (_l)->l_lock_num_exmode | 2824 | # define lock_num_exmode(_l) ((_l)->l_lock_exmode.ls_gets) |
| 2917 | # define lock_num_prmode_failed(_l) (_l)->l_lock_num_prmode_failed | 2825 | # define lock_num_prmode_failed(_l) ((_l)->l_lock_prmode.ls_fail) |
| 2918 | # define lock_num_exmode_failed(_l) (_l)->l_lock_num_exmode_failed | 2826 | # define lock_num_exmode_failed(_l) ((_l)->l_lock_exmode.ls_fail) |
| 2919 | # define lock_total_prmode(_l) (_l)->l_lock_total_prmode | 2827 | # define lock_total_prmode(_l) ((_l)->l_lock_prmode.ls_total) |
| 2920 | # define lock_total_exmode(_l) (_l)->l_lock_total_exmode | 2828 | # define lock_total_exmode(_l) ((_l)->l_lock_exmode.ls_total) |
| 2921 | # define lock_max_prmode(_l) (_l)->l_lock_max_prmode | 2829 | # define lock_max_prmode(_l) ((_l)->l_lock_prmode.ls_max) |
| 2922 | # define lock_max_exmode(_l) (_l)->l_lock_max_exmode | 2830 | # define lock_max_exmode(_l) ((_l)->l_lock_exmode.ls_max) |
| 2923 | # define lock_refresh(_l) (_l)->l_lock_refresh | 2831 | # define lock_refresh(_l) ((_l)->l_lock_refresh) |
| 2924 | #else | 2832 | #else |
| 2925 | # define lock_num_prmode(_l) (0ULL) | 2833 | # define lock_num_prmode(_l) (0) |
| 2926 | # define lock_num_exmode(_l) (0ULL) | 2834 | # define lock_num_exmode(_l) (0) |
| 2927 | # define lock_num_prmode_failed(_l) (0) | 2835 | # define lock_num_prmode_failed(_l) (0) |
| 2928 | # define lock_num_exmode_failed(_l) (0) | 2836 | # define lock_num_exmode_failed(_l) (0) |
| 2929 | # define lock_total_prmode(_l) (0ULL) | 2837 | # define lock_total_prmode(_l) (0ULL) |
| @@ -2933,8 +2841,8 @@ static int ocfs2_dlm_seq_show(struct seq_file *m, void *v) | |||
| 2933 | # define lock_refresh(_l) (0) | 2841 | # define lock_refresh(_l) (0) |
| 2934 | #endif | 2842 | #endif |
| 2935 | /* The following seq_print was added in version 2 of this output */ | 2843 | /* The following seq_print was added in version 2 of this output */ |
| 2936 | seq_printf(m, "%llu\t" | 2844 | seq_printf(m, "%u\t" |
| 2937 | "%llu\t" | 2845 | "%u\t" |
| 2938 | "%u\t" | 2846 | "%u\t" |
| 2939 | "%u\t" | 2847 | "%u\t" |
| 2940 | "%llu\t" | 2848 | "%llu\t" |
| @@ -3054,8 +2962,6 @@ int ocfs2_dlm_init(struct ocfs2_super *osb) | |||
| 3054 | int status = 0; | 2962 | int status = 0; |
| 3055 | struct ocfs2_cluster_connection *conn = NULL; | 2963 | struct ocfs2_cluster_connection *conn = NULL; |
| 3056 | 2964 | ||
| 3057 | mlog_entry_void(); | ||
| 3058 | |||
| 3059 | if (ocfs2_mount_local(osb)) { | 2965 | if (ocfs2_mount_local(osb)) { |
| 3060 | osb->node_num = 0; | 2966 | osb->node_num = 0; |
| 3061 | goto local; | 2967 | goto local; |
| @@ -3112,15 +3018,12 @@ bail: | |||
| 3112 | kthread_stop(osb->dc_task); | 3018 | kthread_stop(osb->dc_task); |
| 3113 | } | 3019 | } |
| 3114 | 3020 | ||
| 3115 | mlog_exit(status); | ||
| 3116 | return status; | 3021 | return status; |
| 3117 | } | 3022 | } |
| 3118 | 3023 | ||
| 3119 | void ocfs2_dlm_shutdown(struct ocfs2_super *osb, | 3024 | void ocfs2_dlm_shutdown(struct ocfs2_super *osb, |
| 3120 | int hangup_pending) | 3025 | int hangup_pending) |
| 3121 | { | 3026 | { |
| 3122 | mlog_entry_void(); | ||
| 3123 | |||
| 3124 | ocfs2_drop_osb_locks(osb); | 3027 | ocfs2_drop_osb_locks(osb); |
| 3125 | 3028 | ||
| 3126 | /* | 3029 | /* |
| @@ -3143,8 +3046,6 @@ void ocfs2_dlm_shutdown(struct ocfs2_super *osb, | |||
| 3143 | osb->cconn = NULL; | 3046 | osb->cconn = NULL; |
| 3144 | 3047 | ||
| 3145 | ocfs2_dlm_shutdown_debug(osb); | 3048 | ocfs2_dlm_shutdown_debug(osb); |
| 3146 | |||
| 3147 | mlog_exit_void(); | ||
| 3148 | } | 3049 | } |
| 3149 | 3050 | ||
| 3150 | static int ocfs2_drop_lock(struct ocfs2_super *osb, | 3051 | static int ocfs2_drop_lock(struct ocfs2_super *osb, |
| @@ -3226,7 +3127,6 @@ static int ocfs2_drop_lock(struct ocfs2_super *osb, | |||
| 3226 | 3127 | ||
| 3227 | ocfs2_wait_on_busy_lock(lockres); | 3128 | ocfs2_wait_on_busy_lock(lockres); |
| 3228 | out: | 3129 | out: |
| 3229 | mlog_exit(0); | ||
| 3230 | return 0; | 3130 | return 0; |
| 3231 | } | 3131 | } |
| 3232 | 3132 | ||
| @@ -3284,8 +3184,6 @@ int ocfs2_drop_inode_locks(struct inode *inode) | |||
| 3284 | { | 3184 | { |
| 3285 | int status, err; | 3185 | int status, err; |
| 3286 | 3186 | ||
| 3287 | mlog_entry_void(); | ||
| 3288 | |||
| 3289 | /* No need to call ocfs2_mark_lockres_freeing here - | 3187 | /* No need to call ocfs2_mark_lockres_freeing here - |
| 3290 | * ocfs2_clear_inode has done it for us. */ | 3188 | * ocfs2_clear_inode has done it for us. */ |
| 3291 | 3189 | ||
| @@ -3310,7 +3208,6 @@ int ocfs2_drop_inode_locks(struct inode *inode) | |||
| 3310 | if (err < 0 && !status) | 3208 | if (err < 0 && !status) |
| 3311 | status = err; | 3209 | status = err; |
| 3312 | 3210 | ||
| 3313 | mlog_exit(status); | ||
| 3314 | return status; | 3211 | return status; |
| 3315 | } | 3212 | } |
| 3316 | 3213 | ||
| @@ -3352,8 +3249,6 @@ static int ocfs2_downconvert_lock(struct ocfs2_super *osb, | |||
| 3352 | int ret; | 3249 | int ret; |
| 3353 | u32 dlm_flags = DLM_LKF_CONVERT; | 3250 | u32 dlm_flags = DLM_LKF_CONVERT; |
| 3354 | 3251 | ||
| 3355 | mlog_entry_void(); | ||
| 3356 | |||
| 3357 | mlog(ML_BASTS, "lockres %s, level %d => %d\n", lockres->l_name, | 3252 | mlog(ML_BASTS, "lockres %s, level %d => %d\n", lockres->l_name, |
| 3358 | lockres->l_level, new_level); | 3253 | lockres->l_level, new_level); |
| 3359 | 3254 | ||
| @@ -3375,7 +3270,6 @@ static int ocfs2_downconvert_lock(struct ocfs2_super *osb, | |||
| 3375 | 3270 | ||
| 3376 | ret = 0; | 3271 | ret = 0; |
| 3377 | bail: | 3272 | bail: |
| 3378 | mlog_exit(ret); | ||
| 3379 | return ret; | 3273 | return ret; |
| 3380 | } | 3274 | } |
| 3381 | 3275 | ||
| @@ -3385,8 +3279,6 @@ static int ocfs2_prepare_cancel_convert(struct ocfs2_super *osb, | |||
| 3385 | { | 3279 | { |
| 3386 | assert_spin_locked(&lockres->l_lock); | 3280 | assert_spin_locked(&lockres->l_lock); |
| 3387 | 3281 | ||
| 3388 | mlog_entry_void(); | ||
| 3389 | |||
| 3390 | if (lockres->l_unlock_action == OCFS2_UNLOCK_CANCEL_CONVERT) { | 3282 | if (lockres->l_unlock_action == OCFS2_UNLOCK_CANCEL_CONVERT) { |
| 3391 | /* If we're already trying to cancel a lock conversion | 3283 | /* If we're already trying to cancel a lock conversion |
| 3392 | * then just drop the spinlock and allow the caller to | 3284 | * then just drop the spinlock and allow the caller to |
| @@ -3416,8 +3308,6 @@ static int ocfs2_cancel_convert(struct ocfs2_super *osb, | |||
| 3416 | { | 3308 | { |
| 3417 | int ret; | 3309 | int ret; |
| 3418 | 3310 | ||
| 3419 | mlog_entry_void(); | ||
| 3420 | |||
| 3421 | ret = ocfs2_dlm_unlock(osb->cconn, &lockres->l_lksb, | 3311 | ret = ocfs2_dlm_unlock(osb->cconn, &lockres->l_lksb, |
| 3422 | DLM_LKF_CANCEL); | 3312 | DLM_LKF_CANCEL); |
| 3423 | if (ret) { | 3313 | if (ret) { |
| @@ -3427,7 +3317,6 @@ static int ocfs2_cancel_convert(struct ocfs2_super *osb, | |||
| 3427 | 3317 | ||
| 3428 | mlog(ML_BASTS, "lockres %s\n", lockres->l_name); | 3318 | mlog(ML_BASTS, "lockres %s\n", lockres->l_name); |
| 3429 | 3319 | ||
| 3430 | mlog_exit(ret); | ||
| 3431 | return ret; | 3320 | return ret; |
| 3432 | } | 3321 | } |
| 3433 | 3322 | ||
| @@ -3443,8 +3332,6 @@ static int ocfs2_unblock_lock(struct ocfs2_super *osb, | |||
| 3443 | int set_lvb = 0; | 3332 | int set_lvb = 0; |
| 3444 | unsigned int gen; | 3333 | unsigned int gen; |
| 3445 | 3334 | ||
| 3446 | mlog_entry_void(); | ||
| 3447 | |||
| 3448 | spin_lock_irqsave(&lockres->l_lock, flags); | 3335 | spin_lock_irqsave(&lockres->l_lock, flags); |
| 3449 | 3336 | ||
| 3450 | recheck: | 3337 | recheck: |
| @@ -3619,14 +3506,14 @@ downconvert: | |||
| 3619 | gen); | 3506 | gen); |
| 3620 | 3507 | ||
| 3621 | leave: | 3508 | leave: |
| 3622 | mlog_exit(ret); | 3509 | if (ret) |
| 3510 | mlog_errno(ret); | ||
| 3623 | return ret; | 3511 | return ret; |
| 3624 | 3512 | ||
| 3625 | leave_requeue: | 3513 | leave_requeue: |
| 3626 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 3514 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
| 3627 | ctl->requeue = 1; | 3515 | ctl->requeue = 1; |
| 3628 | 3516 | ||
| 3629 | mlog_exit(0); | ||
| 3630 | return 0; | 3517 | return 0; |
| 3631 | } | 3518 | } |
| 3632 | 3519 | ||
| @@ -3859,8 +3746,6 @@ static void ocfs2_set_qinfo_lvb(struct ocfs2_lock_res *lockres) | |||
| 3859 | struct mem_dqinfo *info = sb_dqinfo(oinfo->dqi_gi.dqi_sb, | 3746 | struct mem_dqinfo *info = sb_dqinfo(oinfo->dqi_gi.dqi_sb, |
| 3860 | oinfo->dqi_gi.dqi_type); | 3747 | oinfo->dqi_gi.dqi_type); |
| 3861 | 3748 | ||
| 3862 | mlog_entry_void(); | ||
| 3863 | |||
| 3864 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); | 3749 | lvb = ocfs2_dlm_lvb(&lockres->l_lksb); |
| 3865 | lvb->lvb_version = OCFS2_QINFO_LVB_VERSION; | 3750 | lvb->lvb_version = OCFS2_QINFO_LVB_VERSION; |
| 3866 | lvb->lvb_bgrace = cpu_to_be32(info->dqi_bgrace); | 3751 | lvb->lvb_bgrace = cpu_to_be32(info->dqi_bgrace); |
| @@ -3869,8 +3754,6 @@ static void ocfs2_set_qinfo_lvb(struct ocfs2_lock_res *lockres) | |||
| 3869 | lvb->lvb_blocks = cpu_to_be32(oinfo->dqi_gi.dqi_blocks); | 3754 | lvb->lvb_blocks = cpu_to_be32(oinfo->dqi_gi.dqi_blocks); |
| 3870 | lvb->lvb_free_blk = cpu_to_be32(oinfo->dqi_gi.dqi_free_blk); | 3755 | lvb->lvb_free_blk = cpu_to_be32(oinfo->dqi_gi.dqi_free_blk); |
| 3871 | lvb->lvb_free_entry = cpu_to_be32(oinfo->dqi_gi.dqi_free_entry); | 3756 | lvb->lvb_free_entry = cpu_to_be32(oinfo->dqi_gi.dqi_free_entry); |
| 3872 | |||
| 3873 | mlog_exit_void(); | ||
| 3874 | } | 3757 | } |
| 3875 | 3758 | ||
| 3876 | void ocfs2_qinfo_unlock(struct ocfs2_mem_dqinfo *oinfo, int ex) | 3759 | void ocfs2_qinfo_unlock(struct ocfs2_mem_dqinfo *oinfo, int ex) |
| @@ -3879,10 +3762,8 @@ void ocfs2_qinfo_unlock(struct ocfs2_mem_dqinfo *oinfo, int ex) | |||
| 3879 | struct ocfs2_super *osb = OCFS2_SB(oinfo->dqi_gi.dqi_sb); | 3762 | struct ocfs2_super *osb = OCFS2_SB(oinfo->dqi_gi.dqi_sb); |
| 3880 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; | 3763 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; |
| 3881 | 3764 | ||
| 3882 | mlog_entry_void(); | ||
| 3883 | if (!ocfs2_is_hard_readonly(osb) && !ocfs2_mount_local(osb)) | 3765 | if (!ocfs2_is_hard_readonly(osb) && !ocfs2_mount_local(osb)) |
| 3884 | ocfs2_cluster_unlock(osb, lockres, level); | 3766 | ocfs2_cluster_unlock(osb, lockres, level); |
| 3885 | mlog_exit_void(); | ||
| 3886 | } | 3767 | } |
| 3887 | 3768 | ||
| 3888 | static int ocfs2_refresh_qinfo(struct ocfs2_mem_dqinfo *oinfo) | 3769 | static int ocfs2_refresh_qinfo(struct ocfs2_mem_dqinfo *oinfo) |
| @@ -3937,8 +3818,6 @@ int ocfs2_qinfo_lock(struct ocfs2_mem_dqinfo *oinfo, int ex) | |||
| 3937 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; | 3818 | int level = ex ? DLM_LOCK_EX : DLM_LOCK_PR; |
| 3938 | int status = 0; | 3819 | int status = 0; |
| 3939 | 3820 | ||
| 3940 | mlog_entry_void(); | ||
| 3941 | |||
| 3942 | /* On RO devices, locking really isn't needed... */ | 3821 | /* On RO devices, locking really isn't needed... */ |
| 3943 | if (ocfs2_is_hard_readonly(osb)) { | 3822 | if (ocfs2_is_hard_readonly(osb)) { |
| 3944 | if (ex) | 3823 | if (ex) |
| @@ -3961,7 +3840,6 @@ int ocfs2_qinfo_lock(struct ocfs2_mem_dqinfo *oinfo, int ex) | |||
| 3961 | ocfs2_qinfo_unlock(oinfo, ex); | 3840 | ocfs2_qinfo_unlock(oinfo, ex); |
| 3962 | ocfs2_complete_lock_res_refresh(lockres, status); | 3841 | ocfs2_complete_lock_res_refresh(lockres, status); |
| 3963 | bail: | 3842 | bail: |
| 3964 | mlog_exit(status); | ||
| 3965 | return status; | 3843 | return status; |
| 3966 | } | 3844 | } |
| 3967 | 3845 | ||
| @@ -4007,8 +3885,6 @@ static void ocfs2_process_blocked_lock(struct ocfs2_super *osb, | |||
| 4007 | * considered valid until we remove the OCFS2_LOCK_QUEUED | 3885 | * considered valid until we remove the OCFS2_LOCK_QUEUED |
| 4008 | * flag. */ | 3886 | * flag. */ |
| 4009 | 3887 | ||
| 4010 | mlog_entry_void(); | ||
| 4011 | |||
| 4012 | BUG_ON(!lockres); | 3888 | BUG_ON(!lockres); |
| 4013 | BUG_ON(!lockres->l_ops); | 3889 | BUG_ON(!lockres->l_ops); |
| 4014 | 3890 | ||
| @@ -4042,15 +3918,11 @@ unqueue: | |||
| 4042 | if (ctl.unblock_action != UNBLOCK_CONTINUE | 3918 | if (ctl.unblock_action != UNBLOCK_CONTINUE |
| 4043 | && lockres->l_ops->post_unlock) | 3919 | && lockres->l_ops->post_unlock) |
| 4044 | lockres->l_ops->post_unlock(osb, lockres); | 3920 | lockres->l_ops->post_unlock(osb, lockres); |
| 4045 | |||
| 4046 | mlog_exit_void(); | ||
| 4047 | } | 3921 | } |
| 4048 | 3922 | ||
| 4049 | static void ocfs2_schedule_blocked_lock(struct ocfs2_super *osb, | 3923 | static void ocfs2_schedule_blocked_lock(struct ocfs2_super *osb, |
| 4050 | struct ocfs2_lock_res *lockres) | 3924 | struct ocfs2_lock_res *lockres) |
| 4051 | { | 3925 | { |
| 4052 | mlog_entry_void(); | ||
| 4053 | |||
| 4054 | assert_spin_locked(&lockres->l_lock); | 3926 | assert_spin_locked(&lockres->l_lock); |
| 4055 | 3927 | ||
| 4056 | if (lockres->l_flags & OCFS2_LOCK_FREEING) { | 3928 | if (lockres->l_flags & OCFS2_LOCK_FREEING) { |
| @@ -4071,8 +3943,6 @@ static void ocfs2_schedule_blocked_lock(struct ocfs2_super *osb, | |||
| 4071 | osb->blocked_lock_count++; | 3943 | osb->blocked_lock_count++; |
| 4072 | } | 3944 | } |
| 4073 | spin_unlock(&osb->dc_task_lock); | 3945 | spin_unlock(&osb->dc_task_lock); |
| 4074 | |||
| 4075 | mlog_exit_void(); | ||
| 4076 | } | 3946 | } |
| 4077 | 3947 | ||
| 4078 | static void ocfs2_downconvert_thread_do_work(struct ocfs2_super *osb) | 3948 | static void ocfs2_downconvert_thread_do_work(struct ocfs2_super *osb) |
| @@ -4080,8 +3950,6 @@ static void ocfs2_downconvert_thread_do_work(struct ocfs2_super *osb) | |||
| 4080 | unsigned long processed; | 3950 | unsigned long processed; |
| 4081 | struct ocfs2_lock_res *lockres; | 3951 | struct ocfs2_lock_res *lockres; |
| 4082 | 3952 | ||
| 4083 | mlog_entry_void(); | ||
| 4084 | |||
| 4085 | spin_lock(&osb->dc_task_lock); | 3953 | spin_lock(&osb->dc_task_lock); |
| 4086 | /* grab this early so we know to try again if a state change and | 3954 | /* grab this early so we know to try again if a state change and |
| 4087 | * wake happens part-way through our work */ | 3955 | * wake happens part-way through our work */ |
| @@ -4105,8 +3973,6 @@ static void ocfs2_downconvert_thread_do_work(struct ocfs2_super *osb) | |||
| 4105 | spin_lock(&osb->dc_task_lock); | 3973 | spin_lock(&osb->dc_task_lock); |
| 4106 | } | 3974 | } |
| 4107 | spin_unlock(&osb->dc_task_lock); | 3975 | spin_unlock(&osb->dc_task_lock); |
| 4108 | |||
| 4109 | mlog_exit_void(); | ||
| 4110 | } | 3976 | } |
| 4111 | 3977 | ||
| 4112 | static int ocfs2_downconvert_thread_lists_empty(struct ocfs2_super *osb) | 3978 | static int ocfs2_downconvert_thread_lists_empty(struct ocfs2_super *osb) |
