Commit Graph

39 Commits

Author SHA1 Message Date
Jaegeuk Kim
d3012901c5 f2fs-tools: release 1.11.1
This release includes:
 - add android default configuration
 - fix resgid/resuid
 - add more sanity checks

And, there are several bug fixes in fsck.f2fs/sload.f2fs/mkfs.f2fs.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-08-27 23:59:01 -07:00
Helmut Grohne
e034e7627a f2fs-tools: Fix cross-build problem caused by AC_CHECK_FILE abuse
f2fs-tools fails to cross build from source, because its upstream
build system wrongly uses AC_CHECK_FILE. The purpose of the macro is
checking for files on the host system. However here it is used to
check whether a .git directory exists, which is a property of the
build place. A simple "test -d" should be used here. After doing so,
f2fs-tools cross builds successfully.

Addresses-Debian-Bug: #896909

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-08-27 23:59:01 -07:00
Theodore Ts'o
b067004c92 add configure option --with-root-libdir
This allows the development link libraries to be installed in
/usr/lib, while the run-libraries are installed in /lib, which is
required by Debian policy.  This can be done via:

    configure --prefix=/ --libdir=/usr/lib --with-root-libdir=/lib

The technique of working around libtool's inflexibility is borrowed
from util-linux.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-08-27 23:49:26 -07:00
Baruch Siach
eefe225a56 configure: uclinux is also linux
Linux systems on no-MMU platforms identify as uclinux. They are
otherwise identical to plain Linux.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-08-27 23:49:26 -07:00
Jaegeuk Kim
b98fab3666 f2fs-tools: release 1.11.0
This release includes:
 - add sg_write_buffer for UFS firmware update in Android
 - wanted_sector_size to specify sector size explicity
 - support fsverity feature bit
 - support lost+found feature

And, it includes some critical bug fixes.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-07-10 12:38:57 -07:00
Jaegeuk Kim
595fd57a4f f2fs-tools: get kernel version via uname(2)
This patch introduces uname(2) to get kernel version.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-05-04 12:19:40 -07:00
Hyojun Kim
b39f62dce4 tools: sg_write_buffer: add sg_write_buffer for FFU
sg_write_buffer sources are added for FFU.

Signed-off-by: Hyojun Kim <hyojun@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2018-03-14 13:19:09 +09:00
Jaegeuk Kim
254cdad2ee f2fs-tools: release 1.10.0
This release includes:
- build support for Mac/Windows
- sparse support for Android build
- --dry-run for fsck.f2fs
- -q to preserve quota limits

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2018-01-30 14:35:10 -08:00
Jaegeuk Kim
43bb7b6c99 f2fs-tools: build binaries in Mac
This patch modifies f2fs-tools to be built in mac.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-11-14 19:43:48 -08:00
Sheng Yong
ace53e2ff4 dump/fsck: introduce print_xattr_entry
This patch exports read_all_xattrs to allow dump/fsck to get all xattrs,
and introduces print_xattr_entry which tries to parse an xattr entry
accroding to its xattr index.

Signed-off-by: Sheng Yong <shengyong1@huawei.com>
[Jaegeuk Kim: fix configure.ac]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-11-11 18:01:07 -08:00
Sheng Yong
7935c4e1f0 dump.f2fs: introduce dump_xattr
This patch introduces dump_xattr to create xattrs for dumped files.

Signed-off-by: Sheng Yong <shengyong1@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
[Jaegeuk Kim: detect header files]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-11-11 18:01:04 -08:00
Jaegeuk Kim
c6d5ec2faa f2fs-tools: release 1.9.0
This release includes:
 - sparse support
 - inode checksum support
 - nat_bits option
 - encryption management
 - noheap allocation by default
 - add CP_TRIMMED_FLAG

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-09-21 16:15:40 -07:00
Kinglong Mee
52a3a273d1 mkfs.f2fs: check overwrite before make filesystem
Mkfs.f2fs doesn't check the overwrite of exist filesystem.
Avoid formatting an exist filesystem by mistake, a notice is important.
The code is modified from xfsprogs.

v3, add the missing update of SYNOPSIS
v2, add the manpages description of -f.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-03-06 17:15:26 -08:00
Jaegeuk Kim
1e7aedf99b f2fs-tools: release 1.8.0
This release includes:
 - enhance fsck.f2fs mostly.
 - retrieve lost files from dump.f2fs.
 - support zoned device and multiple devices.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-02-03 16:10:17 -08:00
Sergey Kvachonok
0d6ce1f566 Add a configure option for SELinux support
./configure --without-selinux :: unconditionally disable SELinux support

./configure --with-selinux :: enable SELinux support and abort if
libselinux is not found

When no configure option is specified the current libselinux
autodetection behaviour is preserved.

Signed-off-by: Sergey Kvachonok <ravenexp@gmail.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-01-13 11:01:19 -08:00
Damien Le Moal
9691420a99 f2fs-tools: introduce support for zoned block devices
With the availability of the BLKREPORTZONE and BLKRESETZONE
ioctls, there is no need for using SG_IO to discover zoned
block devices characteristics. This simplifies the code.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-11-01 17:27:34 -07:00
Christian Hesse
b0a2386089 sload.f2fs: allow to build without libselinux
Some systems do not have libselinux. Allow to build sload.f2fs without
support for selinux.

Signed-off-by: Christian Hesse <mail@eworm.de>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-10-23 14:36:49 -07:00
Jaegeuk Kim
d2446560e2 f2fs-tools: release 1.7.0
This version adds Host-managed SMR detection code.

libf2fs_format_la
 - changed its body

libf2fs_la
 - added zbc_scsi_report_zones()

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-07-29 10:14:43 -07:00
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