diff options
Diffstat (limited to 'fs/ocfs2/localalloc.c')
-rw-r--r-- | fs/ocfs2/localalloc.c | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c index 36636e1c84e7..a311b1f658e2 100644 --- a/fs/ocfs2/localalloc.c +++ b/fs/ocfs2/localalloc.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include "suballoc.h" | 43 | #include "suballoc.h" |
44 | #include "super.h" | 44 | #include "super.h" |
45 | #include "sysfile.h" | 45 | #include "sysfile.h" |
46 | #include "ocfs2_trace.h" | ||
46 | 47 | ||
47 | #include "buffer_head_io.h" | 48 | #include "buffer_head_io.h" |
48 | 49 | ||
@@ -201,8 +202,7 @@ void ocfs2_la_set_sizes(struct ocfs2_super *osb, int requested_mb) | |||
201 | la_max_mb = ocfs2_clusters_to_megabytes(sb, | 202 | la_max_mb = ocfs2_clusters_to_megabytes(sb, |
202 | ocfs2_local_alloc_size(sb) * 8); | 203 | ocfs2_local_alloc_size(sb) * 8); |
203 | 204 | ||
204 | mlog(0, "requested: %dM, max: %uM, default: %uM\n", | 205 | trace_ocfs2_la_set_sizes(requested_mb, la_max_mb, la_default_mb); |
205 | requested_mb, la_max_mb, la_default_mb); | ||
206 | 206 | ||
207 | if (requested_mb == -1) { | 207 | if (requested_mb == -1) { |
208 | /* No user request - use defaults */ | 208 | /* No user request - use defaults */ |
@@ -276,8 +276,8 @@ int ocfs2_alloc_should_use_local(struct ocfs2_super *osb, u64 bits) | |||
276 | 276 | ||
277 | ret = 1; | 277 | ret = 1; |
278 | bail: | 278 | bail: |
279 | mlog(0, "state=%d, bits=%llu, la_bits=%d, ret=%d\n", | 279 | trace_ocfs2_alloc_should_use_local( |
280 | osb->local_alloc_state, (unsigned long long)bits, la_bits, ret); | 280 | (unsigned long long)bits, osb->local_alloc_state, la_bits, ret); |
281 | spin_unlock(&osb->osb_lock); | 281 | spin_unlock(&osb->osb_lock); |
282 | return ret; | 282 | return ret; |
283 | } | 283 | } |
@@ -362,7 +362,7 @@ bail: | |||
362 | if (inode) | 362 | if (inode) |
363 | iput(inode); | 363 | iput(inode); |
364 | 364 | ||
365 | mlog(0, "Local alloc window bits = %d\n", osb->local_alloc_bits); | 365 | trace_ocfs2_load_local_alloc(osb->local_alloc_bits); |
366 | 366 | ||
367 | if (status) | 367 | if (status) |
368 | mlog_errno(status); | 368 | mlog_errno(status); |
@@ -497,7 +497,7 @@ int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb, | |||
497 | struct inode *inode = NULL; | 497 | struct inode *inode = NULL; |
498 | struct ocfs2_dinode *alloc; | 498 | struct ocfs2_dinode *alloc; |
499 | 499 | ||
500 | mlog(0, "(slot_num = %d)\n", slot_num); | 500 | trace_ocfs2_begin_local_alloc_recovery(slot_num); |
501 | 501 | ||
502 | *alloc_copy = NULL; | 502 | *alloc_copy = NULL; |
503 | 503 | ||
@@ -705,10 +705,6 @@ int ocfs2_reserve_local_alloc_bits(struct ocfs2_super *osb, | |||
705 | goto bail; | 705 | goto bail; |
706 | } | 706 | } |
707 | 707 | ||
708 | if (ac->ac_max_block) | ||
709 | mlog(0, "Calling in_range for max block %llu\n", | ||
710 | (unsigned long long)ac->ac_max_block); | ||
711 | |||
712 | ac->ac_inode = local_alloc_inode; | 708 | ac->ac_inode = local_alloc_inode; |
713 | /* We should never use localalloc from another slot */ | 709 | /* We should never use localalloc from another slot */ |
714 | ac->ac_alloc_slot = osb->slot_num; | 710 | ac->ac_alloc_slot = osb->slot_num; |
@@ -722,8 +718,9 @@ bail: | |||
722 | iput(local_alloc_inode); | 718 | iput(local_alloc_inode); |
723 | } | 719 | } |
724 | 720 | ||
725 | mlog(0, "bits=%d, slot=%d, ret=%d\n", bits_wanted, osb->slot_num, | 721 | trace_ocfs2_reserve_local_alloc_bits( |
726 | status); | 722 | (unsigned long long)ac->ac_max_block, |
723 | bits_wanted, osb->slot_num, status); | ||
727 | 724 | ||
728 | if (status) | 725 | if (status) |
729 | mlog_errno(status); | 726 | mlog_errno(status); |
@@ -797,7 +794,7 @@ static u32 ocfs2_local_alloc_count_bits(struct ocfs2_dinode *alloc) | |||
797 | for (i = 0; i < le16_to_cpu(la->la_size); i++) | 794 | for (i = 0; i < le16_to_cpu(la->la_size); i++) |
798 | count += hweight8(buffer[i]); | 795 | count += hweight8(buffer[i]); |
799 | 796 | ||
800 | mlog(0, "count %u\n", count); | 797 | trace_ocfs2_local_alloc_count_bits(count); |
801 | return count; | 798 | return count; |
802 | } | 799 | } |
803 | 800 | ||
@@ -812,10 +809,7 @@ static int ocfs2_local_alloc_find_clear_bits(struct ocfs2_super *osb, | |||
812 | void *bitmap = NULL; | 809 | void *bitmap = NULL; |
813 | struct ocfs2_reservation_map *resmap = &osb->osb_la_resmap; | 810 | struct ocfs2_reservation_map *resmap = &osb->osb_la_resmap; |
814 | 811 | ||
815 | mlog(0, "(numbits wanted = %u)\n", *numbits); | ||
816 | |||
817 | if (!alloc->id1.bitmap1.i_total) { | 812 | if (!alloc->id1.bitmap1.i_total) { |
818 | mlog(0, "No bits in my window!\n"); | ||
819 | bitoff = -1; | 813 | bitoff = -1; |
820 | goto bail; | 814 | goto bail; |
821 | } | 815 | } |
@@ -875,8 +869,7 @@ static int ocfs2_local_alloc_find_clear_bits(struct ocfs2_super *osb, | |||
875 | } | 869 | } |
876 | } | 870 | } |
877 | 871 | ||
878 | mlog(0, "Exiting loop, bitoff = %d, numfound = %d\n", bitoff, | 872 | trace_ocfs2_local_alloc_find_clear_bits_search_bitmap(bitoff, numfound); |
879 | numfound); | ||
880 | 873 | ||
881 | if (numfound == *numbits) | 874 | if (numfound == *numbits) |
882 | bitoff = startoff - numfound; | 875 | bitoff = startoff - numfound; |
@@ -887,7 +880,10 @@ bail: | |||
887 | if (local_resv) | 880 | if (local_resv) |
888 | ocfs2_resv_discard(resmap, resv); | 881 | ocfs2_resv_discard(resmap, resv); |
889 | 882 | ||
890 | mlog(0, "bitoff %d\n", bitoff); | 883 | trace_ocfs2_local_alloc_find_clear_bits(*numbits, |
884 | le32_to_cpu(alloc->id1.bitmap1.i_total), | ||
885 | bitoff, numfound); | ||
886 | |||
891 | return bitoff; | 887 | return bitoff; |
892 | } | 888 | } |
893 | 889 | ||
@@ -941,18 +937,16 @@ static int ocfs2_sync_local_to_main(struct ocfs2_super *osb, | |||
941 | void *bitmap; | 937 | void *bitmap; |
942 | struct ocfs2_local_alloc *la = OCFS2_LOCAL_ALLOC(alloc); | 938 | struct ocfs2_local_alloc *la = OCFS2_LOCAL_ALLOC(alloc); |
943 | 939 | ||
944 | mlog(0, "total = %u, used = %u\n", | 940 | trace_ocfs2_sync_local_to_main( |
945 | le32_to_cpu(alloc->id1.bitmap1.i_total), | 941 | le32_to_cpu(alloc->id1.bitmap1.i_total), |
946 | le32_to_cpu(alloc->id1.bitmap1.i_used)); | 942 | le32_to_cpu(alloc->id1.bitmap1.i_used)); |
947 | 943 | ||
948 | if (!alloc->id1.bitmap1.i_total) { | 944 | if (!alloc->id1.bitmap1.i_total) { |
949 | mlog(0, "nothing to sync!\n"); | ||
950 | goto bail; | 945 | goto bail; |
951 | } | 946 | } |
952 | 947 | ||
953 | if (le32_to_cpu(alloc->id1.bitmap1.i_used) == | 948 | if (le32_to_cpu(alloc->id1.bitmap1.i_used) == |
954 | le32_to_cpu(alloc->id1.bitmap1.i_total)) { | 949 | le32_to_cpu(alloc->id1.bitmap1.i_total)) { |
955 | mlog(0, "all bits were taken!\n"); | ||
956 | goto bail; | 950 | goto bail; |
957 | } | 951 | } |
958 | 952 | ||
@@ -974,8 +968,7 @@ static int ocfs2_sync_local_to_main(struct ocfs2_super *osb, | |||
974 | ocfs2_clusters_to_blocks(osb->sb, | 968 | ocfs2_clusters_to_blocks(osb->sb, |
975 | start - count); | 969 | start - count); |
976 | 970 | ||
977 | mlog(0, "freeing %u bits starting at local alloc bit " | 971 | trace_ocfs2_sync_local_to_main_free( |
978 | "%u (la_start_blk = %llu, blkno = %llu)\n", | ||
979 | count, start - count, | 972 | count, start - count, |
980 | (unsigned long long)la_start_blk, | 973 | (unsigned long long)la_start_blk, |
981 | (unsigned long long)blkno); | 974 | (unsigned long long)blkno); |
@@ -1142,12 +1135,9 @@ static int ocfs2_local_alloc_new_window(struct ocfs2_super *osb, | |||
1142 | alloc = (struct ocfs2_dinode *) osb->local_alloc_bh->b_data; | 1135 | alloc = (struct ocfs2_dinode *) osb->local_alloc_bh->b_data; |
1143 | la = OCFS2_LOCAL_ALLOC(alloc); | 1136 | la = OCFS2_LOCAL_ALLOC(alloc); |
1144 | 1137 | ||
1145 | if (alloc->id1.bitmap1.i_total) | 1138 | trace_ocfs2_local_alloc_new_window( |
1146 | mlog(0, "asking me to alloc a new window over a non-empty " | 1139 | le32_to_cpu(alloc->id1.bitmap1.i_total), |
1147 | "one\n"); | 1140 | osb->local_alloc_bits); |
1148 | |||
1149 | mlog(0, "Allocating %u clusters for a new window.\n", | ||
1150 | osb->local_alloc_bits); | ||
1151 | 1141 | ||
1152 | /* Instruct the allocation code to try the most recently used | 1142 | /* Instruct the allocation code to try the most recently used |
1153 | * cluster group. We'll re-record the group used this pass | 1143 | * cluster group. We'll re-record the group used this pass |
@@ -1209,10 +1199,9 @@ retry_enospc: | |||
1209 | ocfs2_resmap_restart(&osb->osb_la_resmap, cluster_count, | 1199 | ocfs2_resmap_restart(&osb->osb_la_resmap, cluster_count, |
1210 | OCFS2_LOCAL_ALLOC(alloc)->la_bitmap); | 1200 | OCFS2_LOCAL_ALLOC(alloc)->la_bitmap); |
1211 | 1201 | ||
1212 | mlog(0, "New window allocated:\n"); | 1202 | trace_ocfs2_local_alloc_new_window_result( |
1213 | mlog(0, "window la_bm_off = %u\n", | 1203 | OCFS2_LOCAL_ALLOC(alloc)->la_bm_off, |
1214 | OCFS2_LOCAL_ALLOC(alloc)->la_bm_off); | 1204 | le32_to_cpu(alloc->id1.bitmap1.i_total)); |
1215 | mlog(0, "window bits = %u\n", le32_to_cpu(alloc->id1.bitmap1.i_total)); | ||
1216 | 1205 | ||
1217 | bail: | 1206 | bail: |
1218 | if (status) | 1207 | if (status) |