|
@@ -2012,7 +2012,7 @@ static void __refresh_next_blkoff(struct f2fs_sb_info *sbi,
|
|
|
* This function always allocates a used segment(from dirty seglist) by SSR
|
|
|
* manner, so it should recover the existing segment information of valid blocks
|
|
|
*/
|
|
|
-static void change_curseg(struct f2fs_sb_info *sbi, int type, bool reuse)
|
|
|
+static void change_curseg(struct f2fs_sb_info *sbi, int type)
|
|
|
{
|
|
|
struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
|
|
|
struct curseg_info *curseg = CURSEG_I(sbi, type);
|
|
@@ -2033,12 +2033,10 @@ static void change_curseg(struct f2fs_sb_info *sbi, int type, bool reuse)
|
|
|
curseg->alloc_type = SSR;
|
|
|
__next_free_blkoff(sbi, curseg, 0);
|
|
|
|
|
|
- if (reuse) {
|
|
|
- sum_page = get_sum_page(sbi, new_segno);
|
|
|
- sum_node = (struct f2fs_summary_block *)page_address(sum_page);
|
|
|
- memcpy(curseg->sum_blk, sum_node, SUM_ENTRY_SIZE);
|
|
|
- f2fs_put_page(sum_page, 1);
|
|
|
- }
|
|
|
+ sum_page = get_sum_page(sbi, new_segno);
|
|
|
+ sum_node = (struct f2fs_summary_block *)page_address(sum_page);
|
|
|
+ memcpy(curseg->sum_blk, sum_node, SUM_ENTRY_SIZE);
|
|
|
+ f2fs_put_page(sum_page, 1);
|
|
|
}
|
|
|
|
|
|
static int get_ssr_segment(struct f2fs_sb_info *sbi, int type)
|
|
@@ -2102,7 +2100,7 @@ static void allocate_segment_by_default(struct f2fs_sb_info *sbi,
|
|
|
else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type))
|
|
|
new_curseg(sbi, type, false);
|
|
|
else if (need_SSR(sbi) && get_ssr_segment(sbi, type))
|
|
|
- change_curseg(sbi, type, true);
|
|
|
+ change_curseg(sbi, type);
|
|
|
else
|
|
|
new_curseg(sbi, type, false);
|
|
|
|
|
@@ -2455,7 +2453,7 @@ void __f2fs_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
|
|
|
/* change the current segment */
|
|
|
if (segno != curseg->segno) {
|
|
|
curseg->next_segno = segno;
|
|
|
- change_curseg(sbi, type, true);
|
|
|
+ change_curseg(sbi, type);
|
|
|
}
|
|
|
|
|
|
curseg->next_blkoff = GET_BLKOFF_FROM_SEG0(sbi, new_blkaddr);
|
|
@@ -2474,7 +2472,7 @@ void __f2fs_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
|
|
|
if (recover_curseg) {
|
|
|
if (old_cursegno != curseg->segno) {
|
|
|
curseg->next_segno = old_cursegno;
|
|
|
- change_curseg(sbi, type, true);
|
|
|
+ change_curseg(sbi, type);
|
|
|
}
|
|
|
curseg->next_blkoff = old_blkoff;
|
|
|
}
|