aboutsummaryrefslogtreecommitdiffstats
path: root/fsck/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* defrag.f2fs: introduce defragmentation toolJaegeuk Kim2016-01-191-1/+2
| | | | | | | | | | | | | | | | | | | | | 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. Change-Id: I7d5e9368d4e597f35483adb16f9ab35daa445a38 Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs-tools: fix build system to make distcheck correctlyAnthony G. Basile2015-11-121-1/+1
| | | | | | | | | | | | | | | | The current build system fails to `make distcheck` correctly for two reasons: 1) Some header files are not listed in the source files for fsck.f2fs and mkfs.f2fs, and so don't make it into the dist tarball. 2) By setting a default prefix in configure.ac, the mock install doesn't add the correct prefix and instead tries to install directly to the file system. This patch corrects those problems and also adds an autogen.sh script for convenience. Change-Id: I0d169a4114664465ce6722707ecfaece65ae157b Signed-off-by: Anthony G. Basile <blueness@gentoo.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
* f2fs-tools: move fsck/fibmap.f2fs to tools/Changman Lee2014-01-161-3/+1
| | | | | | | Let's move miscellaneous utilities into tools directory. Signed-off-by: Changman Lee <cm224.lee@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
* fibmap.f2fs: change fibmap to fibmap.f2fsJaegeuk Kim2013-08-091-2/+2
| | | | | | | | The fibmap tool is for debugging f2fs especially. CC: Changman Lee <cm224.lee@samsung.com> CC: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
* f2fs-tools: add fibmapChangman Lee2013-07-221-1/+3
| | | | | | | | | | This is to get physical location of file data. We can check the percentage of fragmentation on a file. Note that it uses fsync to get exact blkaddr. Signed-off-by: Changman Lee <cm224.lee@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
* f2fs-tools: add fsck.f2fs and dump.f2fsChangman Lee2013-07-041-0/+10
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>