summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/segment.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/f2fs/segment.c')
-rw-r--r--fs/f2fs/segment.c61
1 files changed, 25 insertions, 36 deletions
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 198b2e68a487..4a6133cc9112 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1757,8 +1757,7 @@ static int __f2fs_issue_discard_zone(struct f2fs_sb_info *sbi,
1757 devi = f2fs_target_device_index(sbi, blkstart); 1757 devi = f2fs_target_device_index(sbi, blkstart);
1758 if (blkstart < FDEV(devi).start_blk || 1758 if (blkstart < FDEV(devi).start_blk ||
1759 blkstart > FDEV(devi).end_blk) { 1759 blkstart > FDEV(devi).end_blk) {
1760 f2fs_msg(sbi->sb, KERN_ERR, "Invalid block %x", 1760 f2fs_err(sbi, "Invalid block %x", blkstart);
1761 blkstart);
1762 return -EIO; 1761 return -EIO;
1763 } 1762 }
1764 blkstart -= FDEV(devi).start_blk; 1763 blkstart -= FDEV(devi).start_blk;
@@ -1771,10 +1770,9 @@ static int __f2fs_issue_discard_zone(struct f2fs_sb_info *sbi,
1771 1770
1772 if (sector & (bdev_zone_sectors(bdev) - 1) || 1771 if (sector & (bdev_zone_sectors(bdev) - 1) ||
1773 nr_sects != bdev_zone_sectors(bdev)) { 1772 nr_sects != bdev_zone_sectors(bdev)) {
1774 f2fs_msg(sbi->sb, KERN_ERR, 1773 f2fs_err(sbi, "(%d) %s: Unaligned zone reset attempted (block %x + %x)",
1775 "(%d) %s: Unaligned zone reset attempted (block %x + %x)", 1774 devi, sbi->s_ndevs ? FDEV(devi).path : "",
1776 devi, sbi->s_ndevs ? FDEV(devi).path: "", 1775 blkstart, blklen);
1777 blkstart, blklen);
1778 return -EIO; 1776 return -EIO;
1779 } 1777 }
1780 trace_f2fs_issue_reset_zone(bdev, blkstart); 1778 trace_f2fs_issue_reset_zone(bdev, blkstart);
@@ -2138,15 +2136,14 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
2138 mir_exist = f2fs_test_and_set_bit(offset, 2136 mir_exist = f2fs_test_and_set_bit(offset,
2139 se->cur_valid_map_mir); 2137 se->cur_valid_map_mir);
2140 if (unlikely(exist != mir_exist)) { 2138 if (unlikely(exist != mir_exist)) {
2141 f2fs_msg(sbi->sb, KERN_ERR, "Inconsistent error " 2139 f2fs_err(sbi, "Inconsistent error when setting bitmap, blk:%u, old bit:%d",
2142 "when setting bitmap, blk:%u, old bit:%d", 2140 blkaddr, exist);
2143 blkaddr, exist);
2144 f2fs_bug_on(sbi, 1); 2141 f2fs_bug_on(sbi, 1);
2145 } 2142 }
2146#endif 2143#endif
2147 if (unlikely(exist)) { 2144 if (unlikely(exist)) {
2148 f2fs_msg(sbi->sb, KERN_ERR, 2145 f2fs_err(sbi, "Bitmap was wrongly set, blk:%u",
2149 "Bitmap was wrongly set, blk:%u", blkaddr); 2146 blkaddr);
2150 f2fs_bug_on(sbi, 1); 2147 f2fs_bug_on(sbi, 1);
2151 se->valid_blocks--; 2148 se->valid_blocks--;
2152 del = 0; 2149 del = 0;
@@ -2167,15 +2164,14 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
2167 mir_exist = f2fs_test_and_clear_bit(offset, 2164 mir_exist = f2fs_test_and_clear_bit(offset,
2168 se->cur_valid_map_mir); 2165 se->cur_valid_map_mir);
2169 if (unlikely(exist != mir_exist)) { 2166 if (unlikely(exist != mir_exist)) {
2170 f2fs_msg(sbi->sb, KERN_ERR, "Inconsistent error " 2167 f2fs_err(sbi, "Inconsistent error when clearing bitmap, blk:%u, old bit:%d",
2171 "when clearing bitmap, blk:%u, old bit:%d", 2168 blkaddr, exist);
2172 blkaddr, exist);
2173 f2fs_bug_on(sbi, 1); 2169 f2fs_bug_on(sbi, 1);
2174 } 2170 }
2175#endif 2171#endif
2176 if (unlikely(!exist)) { 2172 if (unlikely(!exist)) {
2177 f2fs_msg(sbi->sb, KERN_ERR, 2173 f2fs_err(sbi, "Bitmap was wrongly cleared, blk:%u",
2178 "Bitmap was wrongly cleared, blk:%u", blkaddr); 2174 blkaddr);
2179 f2fs_bug_on(sbi, 1); 2175 f2fs_bug_on(sbi, 1);
2180 se->valid_blocks++; 2176 se->valid_blocks++;
2181 del = 0; 2177 del = 0;
@@ -2683,9 +2679,8 @@ unlock:
2683 up_write(&SIT_I(sbi)->sentry_lock); 2679 up_write(&SIT_I(sbi)->sentry_lock);
2684 2680
2685 if (segno != curseg->segno) 2681 if (segno != curseg->segno)
2686 f2fs_msg(sbi->sb, KERN_NOTICE, 2682 f2fs_notice(sbi, "For resize: curseg of type %d: %u ==> %u",
2687 "For resize: curseg of type %d: %u ==> %u", 2683 type, segno, curseg->segno);
2688 type, segno, curseg->segno);
2689 2684
2690 mutex_unlock(&curseg->curseg_mutex); 2685 mutex_unlock(&curseg->curseg_mutex);
2691 up_read(&SM_I(sbi)->curseg_lock); 2686 up_read(&SM_I(sbi)->curseg_lock);
@@ -2823,8 +2818,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)
2823 goto out; 2818 goto out;
2824 2819
2825 if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) { 2820 if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
2826 f2fs_msg(sbi->sb, KERN_WARNING, 2821 f2fs_warn(sbi, "Found FS corruption, run fsck to fix.");
2827 "Found FS corruption, run fsck to fix.");
2828 return -EIO; 2822 return -EIO;
2829 } 2823 }
2830 2824
@@ -3585,9 +3579,8 @@ static int restore_curseg_summaries(struct f2fs_sb_info *sbi)
3585 /* sanity check for summary blocks */ 3579 /* sanity check for summary blocks */
3586 if (nats_in_cursum(nat_j) > NAT_JOURNAL_ENTRIES || 3580 if (nats_in_cursum(nat_j) > NAT_JOURNAL_ENTRIES ||
3587 sits_in_cursum(sit_j) > SIT_JOURNAL_ENTRIES) { 3581 sits_in_cursum(sit_j) > SIT_JOURNAL_ENTRIES) {
3588 f2fs_msg(sbi->sb, KERN_ERR, 3582 f2fs_err(sbi, "invalid journal entries nats %u sits %u\n",
3589 "invalid journal entries nats %u sits %u\n", 3583 nats_in_cursum(nat_j), sits_in_cursum(sit_j));
3590 nats_in_cursum(nat_j), sits_in_cursum(sit_j));
3591 return -EINVAL; 3584 return -EINVAL;
3592 } 3585 }
3593 3586
@@ -4155,9 +4148,8 @@ static int build_sit_entries(struct f2fs_sb_info *sbi)
4155 4148
4156 start = le32_to_cpu(segno_in_journal(journal, i)); 4149 start = le32_to_cpu(segno_in_journal(journal, i));
4157 if (start >= MAIN_SEGS(sbi)) { 4150 if (start >= MAIN_SEGS(sbi)) {
4158 f2fs_msg(sbi->sb, KERN_ERR, 4151 f2fs_err(sbi, "Wrong journal entry on segno %u",
4159 "Wrong journal entry on segno %u", 4152 start);
4160 start);
4161 set_sbi_flag(sbi, SBI_NEED_FSCK); 4153 set_sbi_flag(sbi, SBI_NEED_FSCK);
4162 err = -EINVAL; 4154 err = -EINVAL;
4163 break; 4155 break;
@@ -4196,9 +4188,8 @@ static int build_sit_entries(struct f2fs_sb_info *sbi)
4196 up_read(&curseg->journal_rwsem); 4188 up_read(&curseg->journal_rwsem);
4197 4189
4198 if (!err && total_node_blocks != valid_node_count(sbi)) { 4190 if (!err && total_node_blocks != valid_node_count(sbi)) {
4199 f2fs_msg(sbi->sb, KERN_ERR, 4191 f2fs_err(sbi, "SIT is corrupted node# %u vs %u",
4200 "SIT is corrupted node# %u vs %u", 4192 total_node_blocks, valid_node_count(sbi));
4201 total_node_blocks, valid_node_count(sbi));
4202 set_sbi_flag(sbi, SBI_NEED_FSCK); 4193 set_sbi_flag(sbi, SBI_NEED_FSCK);
4203 err = -EINVAL; 4194 err = -EINVAL;
4204 } 4195 }
@@ -4314,12 +4305,10 @@ static int sanity_check_curseg(struct f2fs_sb_info *sbi)
4314 if (!f2fs_test_bit(blkofs, se->cur_valid_map)) 4305 if (!f2fs_test_bit(blkofs, se->cur_valid_map))
4315 continue; 4306 continue;
4316out: 4307out:
4317 f2fs_msg(sbi->sb, KERN_ERR, 4308 f2fs_err(sbi,
4318 "Current segment's next free block offset is " 4309 "Current segment's next free block offset is inconsistent with bitmap, logtype:%u, segno:%u, type:%u, next_blkoff:%u, blkofs:%u",
4319 "inconsistent with bitmap, logtype:%u, " 4310 i, curseg->segno, curseg->alloc_type,
4320 "segno:%u, type:%u, next_blkoff:%u, blkofs:%u", 4311 curseg->next_blkoff, blkofs);
4321 i, curseg->segno, curseg->alloc_type,
4322 curseg->next_blkoff, blkofs);
4323 return -EINVAL; 4312 return -EINVAL;
4324 } 4313 }
4325 } 4314 }