Commit Graph

21 Commits

Author SHA1 Message Date
Jaegeuk Kim
603f8f9d36 sload.f2fs: support loading files into partition directly
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-18 21:11:26 -04:00
Jaegeuk Kim
759df520ae f2fs-tools: release 1.6.1
This version mostly fixes the bugs in fsck.f2fs.
Especially, this fixes a segfault bug when executing "fsck.f2fs -a".

Note that, some body codes (not interfaces) in libf2fs_format.la and libf2fs.la
were changed.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-03-22 14:06:51 -07:00
Jaegeuk Kim
85aa525057 f2fs-tools: add library version info
This patch gives the version info for two libraries.

mkfs/libf2fs_format.la
lib/libf2fs.la

The versioning rule should be:

1. Start with version information of '0:0:0' for each libtool library.
2. Update the version information only immediately before a public release of
   your software. More frequent updates are unnecessary, and only guarantee
   that the current interface number gets larger faster.
2. If the library source code has changed at all since the last update, then
   increment revision (c:r:a) becomes (c:r+1:a).
3. If any interfaces have been added, removed, or changed since the last update,
   increment current, and set revision to 0.
4. If any interfaces have been added since the last public release, then
   increment age.
5. If any interfaces have been removed or changed since the last public release,
   then set age to 0.

quoted from:
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-12-09 11:08:45 -08:00
Gustavo Zacarias
3c160e7d11 configure: add check for fallocate
We need to check for fallocate() rather than just linux/falloc.h +
FALLOC_FL_PUNCH_HOLE since in uClibc we've got both but still not
fallocate() itself since it's only implemented in newer unreleased
versions.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-03-13 16:37:09 -04:00
Anthony G. Basile
5792951de2 f2fs-tools: fix build system to make distcheck correctly
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.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-03-08 20:23:13 -07:00
Yann E. MORIN
dc532e5316 configure: add check for bswap_64
include/f2fs_fs.h checks the HAVE_BSWAP_64 conidtional, but configure
nevers checks for it.

Add a check that the function is indeed declared, and fix the variable
name to match the naming scheme of autoconf (and not those of WAF like
is used by samba), and adapt the check as suggested in the autoconf
manual.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-12-29 10:10:10 -08:00
Yann E. MORIN
936945a25d configure: also check for byteswap.h
include/f2fs_fs.h checks the HAVE_BYTESWAP_H conditional, but it is
never checked for in configure.

Add that header to the list of headers checked for.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-12-29 10:09:46 -08:00
Changman Lee
9a5808cfb7 mkfs.f2fs: reclaim free space in case of regular file
If we use regular file instead block device, let's reclaim its free
space.

Signed-off-by: Changman Lee <cm224.lee@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-11-07 18:17:43 -08:00
Sankalp Bose
92a65a44e5 mkfs.f2fs: fix name conflict for BLKDISCARD
The compile time option BLKDISCARD conflicts with ioctl code
for discard. This causes discard to fail with "Info: This
device doesn't support TRIM". Rename compile time option
to WITH_BLKDISCARD.

Signed-off-by: Sankalp Bose <sankalp@tuxera.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-07-25 08:11:16 -07:00
Changman Lee
a0a5567e3e f2fs-tools: add f2fstat to print f2fs's status in sec
This tool prints /sys/kernel/debug/f2fs/status in sec so that we
can monitor variation of f2fs status.

Signed-off-by: Changman Lee <cm224.lee@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2014-01-14 17:48:35 +09:00
Changman Lee
7f35b548d4 f2fs-tools: add fsck.f2fs and dump.f2fs
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>
2013-07-04 23:15:25 +09:00
Jaegeuk Kim
e69e437850 build: make several base functions as a library
Let's make a library and relocate functions for other tools like fsck.f2fs.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2013-04-04 09:19:07 +09:00
Jan Engelhardt
8471b6a200 build: replace obsolete build macros
AM_CONFIG_HEADER is obsolete. Since v1.6.1b(!) already.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
2012-12-12 03:59:16 +01:00
Jan Engelhardt
2a8c4b1373 build: set some automake options
Use "foreign", so that we are not forced to have all files GNU
requires. It also gets us rid of the INSTALL boilerplate.

Use tar-pax dist-xz to select a modern compression scheme.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
2012-12-12 03:58:17 +01:00
Jan Engelhardt
ec1a5da788 build: make use of AC_CONFIG_AUX_DIR
Place most of the autogenerated files in a separate directory that can
be ignored wholesale, thereby reducing files in the top-level
directory.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
2012-12-12 03:56:12 +01:00
Jan Engelhardt
fe2928a793 build: use pkgconfig to determine libuuid's parameters
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
2012-12-12 03:53:28 +01:00
Jan Engelhardt
b1bce4d3b7 build: remove unnecessary m4_flatten
automake can cope with it as-is.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
2012-12-12 03:52:24 +01:00
Sven-Göran Bergh
dd1ba078fa Unify version and date management
Patch 1:
 Now we have two different versions that produce different superblocks/
 filesystems with the same version info. Major/minor version in the sb
 should reflect the version of the tool creating the filesystem. This
 patch will ensure that the version entered in the file VERSION will
 be used consistently throughout the code.

Patch 2:
 In order to simplify the maintenance with a new release the date
 in F2FS_TOOLS_DATE is now take from the last commit in git. Thus,
 git is needed to run autoconf. However, git is not needed for the
 simple build procedure, ./configure && make, that should be the
 only things needed to build the tool from a tar.gz package.

 Pros & Cons:
  [+] Automated
  [+] True
  [-] Git needed to run autoreconf

Change log by Jaegeuk from the initial patch-set:

- Merge two patches into one
 : Eliminate the intermediate state having version.h and VERSION.

- Remove the Git dependency which is one of Cons
 : If there is no git tree, just use DATE described in VERSION.

- Minor coding style

 Pros & Cons:
  [+] Automated
  [+] True
  [+] No Git dependency

Signed-off-by: Sven-Göran Bergh <sgb@systemasis.org>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2012-12-07 14:56:27 +09:00
Mike Frysinger
0903d1e429 touch up autotools
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-11-26 19:45:59 +09:00
Jaegeuk Kim
99b7439340 Enhancement: add uuid
"Usually, it is used 128-bits UUID for serial number. Why do you use
__le32 as volume_serial_number?"
>From Vyacheslav Dubeyko.

I added an uuid facility for the serial number.
And sync with kernel/include/linux/f2fs_fs.h.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2012-11-26 19:45:59 +09:00
Jaegeuk Kim
036d45e551 mkfs: Initial commit for patch v2 series
This is same as f2fs-tools-1.1.0.tar.gz, and for patch v2 in kernel.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@gmail.com>
2012-11-26 19:45:59 +09:00