diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2015-12-15 18:13:08 -0800 |
---|---|---|
committer | Greg Wallace <greg@gregtwallace.com> | 2016-01-19 22:02:21 -0500 |
commit | 9b8535ccf88731231f31a1d9465feb1db76b93a1 (patch) | |
tree | 5671463bd1b507ab820f1d89feb7b07598bafa92 | |
parent | 837208e09866e08cdd41e5c353257fa36fa88bce (diff) | |
download | android_external_f2fs-tools-9b8535ccf88731231f31a1d9465feb1db76b93a1.tar.gz android_external_f2fs-tools-9b8535ccf88731231f31a1d9465feb1db76b93a1.tar.bz2 android_external_f2fs-tools-9b8535ccf88731231f31a1d9465feb1db76b93a1.zip |
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.
Change-Id: I863301e1243038420d877b7d7a74160b80810ecb
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r-- | fsck/mount.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fsck/mount.c b/fsck/mount.c index d34c704..8418dcc 100644 --- a/fsck/mount.c +++ b/fsck/mount.c @@ -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; |