platform/upstream/f2fs-tools.git
11 years agobuild: compile static by default
Jaegeuk Kim [Tue, 12 Feb 2013 06:15:49 +0000 (15:15 +0900)]
build: compile static by default

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agobuild: clean up the base functions
Jaegeuk Kim [Tue, 12 Feb 2013 02:03:24 +0000 (11:03 +0900)]
build: clean up the base functions

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agobuild: make several base functions as a library
Jaegeuk Kim [Fri, 25 Jan 2013 08:20:16 +0000 (17:20 +0900)]
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>
11 years agobuild: sync f2fs_fs.h with current f2fs sources
Jaegeuk Kim [Fri, 25 Jan 2013 04:39:34 +0000 (13:39 +0900)]
build: sync f2fs_fs.h with current f2fs sources

Rearrange positions of all the data structures for easy synchronization between
f2fs-tools and f2fs kernel sources.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agobuild: move f2fs_format.h to ../include/f2fs_fs.h
Jaegeuk Kim [Fri, 25 Jan 2013 04:23:23 +0000 (13:23 +0900)]
build: move f2fs_format.h to ../include/f2fs_fs.h

This is to use f2fs.h globally, which will be used by other tools such as
fsck.f2fs.

Siged-mff-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agobuild: add description of prerequisite to build
Jaegeuk Kim [Wed, 23 Jan 2013 17:22:13 +0000 (02:22 +0900)]
build: add description of prerequisite to build

Let's check two more packages before building f2fs-tools.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agomkfs: reserve x2 sections
Jaegeuk Kim [Mon, 14 Jan 2013 00:26:51 +0000 (09:26 +0900)]
mkfs: reserve x2 sections

This is due to GC on data sections.
When a data section is cleaned, it produces maximum same number of dirty node
blocks additionally.
So, we should reserve x2 sections to flush dirty node blocks safely.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agobuild: place mkfs into sbindir
Jan Engelhardt [Wed, 12 Dec 2012 03:05:07 +0000 (04:05 +0100)]
build: place mkfs into sbindir

Filesystem creation utilities have always been in *sbin*.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
11 years agobuild: replace obsolete build macros
Jan Engelhardt [Wed, 12 Dec 2012 02:59:16 +0000 (03:59 +0100)]
build: replace obsolete build macros

AM_CONFIG_HEADER is obsolete. Since v1.6.1b(!) already.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
11 years agobuild: set some automake options
Jan Engelhardt [Wed, 12 Dec 2012 02:57:11 +0000 (03:57 +0100)]
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>
11 years agobuild: make use of AC_CONFIG_AUX_DIR
Jan Engelhardt [Wed, 12 Dec 2012 02:55:42 +0000 (03:55 +0100)]
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>
11 years agoUpdate .gitignore
Jan Engelhardt [Wed, 12 Dec 2012 02:54:28 +0000 (03:54 +0100)]
Update .gitignore

Mark directories to be ignored as such.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
11 years agobuild: use pkgconfig to determine libuuid's parameters
Jan Engelhardt [Wed, 12 Dec 2012 02:53:28 +0000 (03:53 +0100)]
build: use pkgconfig to determine libuuid's parameters

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
11 years agobuild: remove unnecessary m4_flatten
Jan Engelhardt [Wed, 12 Dec 2012 02:52:24 +0000 (03:52 +0100)]
build: remove unnecessary m4_flatten

automake can cope with it as-is.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
11 years agomkfs: Make HDIO_GETGEO ioctl optional
Ezequiel Garcia [Wed, 12 Dec 2012 02:08:35 +0000 (23:08 -0300)]
mkfs: Make HDIO_GETGEO ioctl optional

Some block devices don't implement HDIO_GETGEP ioctl;
loop device being a notable example.
Without this patch, it's not possible to make a f2fs
on a file mounted over a loop device.

Signed-off-by: Ezequiel Garcia <ezequiel@free-electrons.com>
11 years agoMore files git should ignore
Sven-Göran Bergh [Fri, 7 Dec 2012 11:38:00 +0000 (12:38 +0100)]
More files git should ignore

Signed-off-by: Sven-Göran Bergh <sgb@systemasis.org>
11 years agoUnify version and date management
Sven-Göran Bergh [Fri, 7 Dec 2012 01:20:27 +0000 (10:20 +0900)]
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>
11 years agoIgnore configure.lineno
Sven-Göran Bergh [Wed, 5 Dec 2012 12:17:39 +0000 (13:17 +0100)]
Ignore configure.lineno

Autotools may spit out the file configure.lineno, which git
should ignore as well.

Signed-off-by: Sven-Göran Bergh <sgb@systemasis.org>
11 years agoSync the version management v1.1.0
Jaegeuk Kim [Thu, 29 Nov 2012 03:44:04 +0000 (12:44 +0900)]
Sync the version management

For debian packaing, I should have matched the previous verions, v1.1.0.
So, this is the start of f2fs-tools version.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoAdd version information v1.0.0
Jaegeuk Kim [Mon, 26 Nov 2012 11:04:39 +0000 (20:04 +0900)]
Add version information

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoBug fix: Fix overflow when calculating block address
Jaegeuk Kim [Tue, 13 Nov 2012 07:32:44 +0000 (16:32 +0900)]
Bug fix: Fix overflow when calculating block address

This patch fixes the bug as follows.
"I'm trying to roll out f2fs on top of SDHC card and faced with following
issue - after mounting card I cannot read device root entry. It returns
-1 EINVAL (entry too big).
getdents(3, /* 1 entries */, 32768)     = 24
getdents(3, 0x1082c88, 32768)           = -1 EINVAL (Invalid argument)"
reported by Ruslan N. Marchenko [me@ruff.mobi].

This bug is easily reproducible and I couldn't have checked the mount
entry cautiously.
Due to the bug, f2fs couldn't get default dentries, . and .., in the root
directory. In the case of other newly created directories, that's fine.

The problem was the overflow during casting variables while calculating the
block address of the root dentry block.
In order to avoid that, I simply split the equation under consideration of
the casting issue.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoCleanup: sync comments to kernel source
Jaegeuk Kim [Wed, 31 Oct 2012 09:29:45 +0000 (18:29 +0900)]
Cleanup: sync comments to kernel source

Remove unnecessary data fields too.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoBug fix: store superblocks with correct offset
Jaegeuk Kim [Mon, 29 Oct 2012 23:43:28 +0000 (08:43 +0900)]
Bug fix: store superblocks with correct offset

There are two superblock writes in mkfs.f2fs.

offset: 0     1024                 4095      5119                 8191
        |------> 1'st superblock ----|--------> 2'nd superblock ----|

Therefore, each superblocks has 1024 byte-size offset.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agotouch up autotools
Mike Frysinger [Mon, 29 Oct 2012 22:38:59 +0000 (07:38 +0900)]
touch up autotools

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
11 years agoignore generated files
Mike Frysinger [Mon, 29 Oct 2012 22:36:26 +0000 (07:36 +0900)]
ignore generated files

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
11 years agouse proper priu64 type to be portable
Mike Frysinger [Mon, 29 Oct 2012 22:38:30 +0000 (07:38 +0900)]
use proper priu64 type to be portable

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
11 years agoCleanup: add comments
Jaegeuk Kim [Mon, 29 Oct 2012 22:35:49 +0000 (07:35 +0900)]
Cleanup: add comments

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoEnhancement: shorten umount time
Jaegeuk Kim [Mon, 29 Oct 2012 22:35:21 +0000 (07:35 +0900)]
Enhancement: shorten umount time

When f2fs is unmounted cleanly, it stores active summmary blocks of nodes in the
checkpoint pack in order to avoid reconstruct all of them at the later mount
time. Previously, mkfs didn't prepare that, which is why the initial mount time
is so huge.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agoEnhancement: add uuid
Jaegeuk Kim [Mon, 29 Oct 2012 22:35:00 +0000 (07:35 +0900)]
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>
11 years agoEnhancement: add i_atime and i_generation
Jaegeuk Kim [Mon, 29 Oct 2012 22:34:35 +0000 (07:34 +0900)]
Enhancement: add i_atime and i_generation

"You appear to have dropped i_btime - no big deal, you weren't using it anyway.
However if you ever want to support NFS export you will need some value which
is assigned when the inode is allocated and never changed until it is
de-allocated.  This is used to detect when an NFS file-handle refers to a
previous incarnation of an inode and so should be rejected as STALE.
i_btime could have possibly provided this, but not any more.  You might want
to add something back.
ext3 uses "i_generation" and has an 's_next_generation' in the superblock to
ensure that each new inode gets a new generation number.

You've also dropped i_atime.  I can certainly understand the desire to do
that, but I wonder if it is entirely wise.  There are some use-cases where
i_mtime is a poor substitute.

Also 'current_depth' looks a little odd without a 'i_' prefix.  It wouldn't
hurt to have a comment noting that it is for directories."

>From Neil Brown.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
11 years agomkfs: Initial commit for patch v2 series
Jaegeuk Kim [Fri, 26 Oct 2012 12:56:34 +0000 (21:56 +0900)]
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>