defrag.f2fs: fix not to allocate current segment

This patch fixes allocating wrong segment which has zero data but is registered
as a current segment.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
Jaegeuk Kim 2015-12-15 18:13:08 -08:00
parent b008605e99
commit 552d6a8f4b

View File

@ -1383,11 +1383,11 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
se = get_seg_entry(sbi, segno);
if (se->valid_blocks == sbi->blocks_per_seg)
if (se->valid_blocks == sbi->blocks_per_seg ||
IS_CUR_SEGNO(sbi, segno, type))
goto next;
if (se->valid_blocks == 0 && !(segno % sbi->segs_per_sec) &&
!IS_CUR_SEGNO(sbi, segno, type)) {
if (se->valid_blocks == 0 && !(segno % sbi->segs_per_sec)) {
struct seg_entry *se2;
int i;