aboutsummaryrefslogtreecommitdiff
path: root/fsck/f2fs.h
AgeCommit message (Collapse)Author
2016-04-18sload.f2fs: support loading files into partition directlyJaegeuk Kim
This patch implements loading files into the existing partition. For example, # sload.f2fs -f ./ /dev/sdb1 Then, all the directories and files will be loaded into /dev/sdb1. By default, newly files should have inline_data and inline_xattr, if possible. Signed-off-by: Hou Pengyang <houpengyang@huawei.com> Signed-off-by: Liu Shuoran <liushuoran@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-04-18resize.f2fs: support to expand partition sizeJaegeuk Kim
Now user can expand existing partition with resize.f2fs. Currently, it doesn't support shrink an image. For example, # resize.f2fs -t [# of sectors] [image] Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-03-14f2fs-tools: rebase struct f2fs_summary_block with upstreamChao Yu
Struct f2fs_summary_block has been changed in upstream commits: - commit 8f1dbbbbdfe9 ("f2fs: introduce lifetime write IO statistics") - commit dfc08a12e49a ("f2fs: introduce f2fs_journal struct to wrap journal info") This patch does the sync work for f2fs_summary_block structure between f2fs-utils and f2fs kernel module. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-12-19defrag.f2fs: enhance allocation speedJaegeuk Kim
This patch improves the allocation speed. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-12-11defrag.f2fs: introduce defragmentation toolJaegeuk Kim
This tool tries to move the valid blocks ranging from blkaddr to blkaddr + len to targeted blkaddr with a direction like expand or shrink. The option includes: -d debug level [default:0] -s start block address [default: main_blkaddr] -l length [default:512 (2MB)] -t target block address [default: main_blkaddr + 2MB] -i set direction as shrink [default: expand] For example, # defrag.f2fs -s 0x100 -l 0x10 -t 0x4000 /dev/sdb1 This will move data blocks between 0x100 and 0x110 to the right side of 0x4000 space. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-12-11fsck.f2fs: LFS alloc_type must have free segment after blkoffJaegeuk Kim
This patch checks alloc_type of current segment type. If it is LFS, the last of segment should have no valid block. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-03-27fsck.f2fs: return summary block pointer and typesJaegeuk Kim
This patch adds to return summry_block pointer to callers, which will be used when fixing them. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-03-25fsck.f2fs: reduce redundant messageJaegeuk Kim
This assert message is unnecessary to be shown, since caller shows the reason already. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-03-20fsck.f2fs: show cp_state for fsck.f2fsJaegeuk Kim
This patch adds to show cp_state during fsck.f2fs. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-12-17dump.f2fs: dump owner of data given block addressJaegeuk Kim
This patch introduces a feature to dump owner information of given block address. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-11-13fsck.f2fs: avoid false alarm on SIT type fixJaegeuk Kim
This patch removed a false alarm when detecting any inconsistency in SIT types. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-10-14fsck.f2fs: support inline_dentryJaegeuk Kim
This patch implements inline_dentry feature. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-10-07fsck.f2fs: fix wrong block addres of nidsJaegeuk Kim
This patch avoids assert when nid has wrong block address. Let's fix this. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-08-29fsck.f2fs: remove list.hJaegeuk Kim
Just use list_head only. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-08-29fsck.f2fs: check next block is free or notJaegeuk Kim
If block allocation is made to the next block offset, we should drop that block. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-08-29fsck.f2fs: fix checkpointJaegeuk Kim
- fix nat entries - fix sit entries - fix checkpoint Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-08-29fsck.f2fs: handle IS_VALID_BLK_ADDRJaegeuk Kim
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-08-29fsck.f2fs: clean up codesJaegeuk Kim
Fix wrong coding style. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-06-04fsck.f2fs: large volume supportChangman Lee
This patch support large volume over about 3TB. Signed-off-by: Changman Lee <cm224.lee@samsung.com> [Jaegeuk Kim: add missing cp_payload in f2fs_super_block] Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2013-07-04f2fs-tools: add fsck.f2fs and dump.f2fsChangman Lee
fsck.f2fs checks file system consistency, but does not repair a broken file system yet. dump.f2fs shows the information of a specific inode and makes dump file of SSA and SIT. f2fs checks file system consistency as follows: o When data about used area and its metadata are identical, f2fs is considered consistent. To verify such consistency, we use three bitmaps: nat_area_bitmap, sit_area_bitmap, and main_area_bitmap. First, each bit in nat_area_bitmap corresponds to a nid in NAT. Second, each bit in sit_area_bitmap corresponds to a valid block in a segment. This bitmap is same to the total valid_map of f2fs_sit_entries in SIT. Last, each bit in main_area_bitmap corresponds to a block in main area except meta area. After a consistency check of each block, we set or clear the corresponding bit of each bitmap. From the root node, we start consistency check. The verified information varies according to block type. 1. NODE - Read information of node block from NAT - Check if block address is allocated using node info. - Check if the type of f2fs_summary related to nid in SSA is NODE. - Update the corresponding bit in nat_area_bitmap. - Update the corresponding bit in sit_area_bitmap. - Set the corresponding bit in main_area_bitmap to 1. - Then, read node block. According to its attribute, explore inode/direct node/indirect node/double indirect node recursively. - If it is an inode block, we also check its xattr and hard link. 2. DATA - Check if the type of f2fs_summary related to nid in SSA is DATA. - Set the corresponding bits of sit_area_bitmap and main_area_bitmap to visited - If it is a dentry block, traverse each dentries that may be regular file or directory. At this time, it will check inode block again. Finally, we verify whether - every nat_area_bitmap is visited - any unreachable hard link exists - values of sit_area_bitmap and main_area_bitmap are identical - total_valid_block_count/node_count/inode_count are correct Usage: o fsck.f2fs # fsck.f2fs /dev/sdx options: -d debug level [default:0] o dump.f2fs # dump.f2fs -i [ino] /dev/sdx # dump.f2fs -s 0~-1 /dev/sdx (SIT dump) # dump.f2fs -a 0~-1 /dev/sdx (SSA dump) options: -d debug level [default:0] -i inode no (hex) -s [SIT dump segno from #1~#2 (decimal), for all 0~-1] -a [SSA dump segno from #1~#2 (decimal), for all 0~-1] Note: To use dump.f2fs, please run make install or ln -s fsck.f2fs dump.f2fs Signed-off-by: Changman Lee <cm224.lee@samsung.com> Signed-off-by: Byoung Geun Kim <bgbg.kim@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>