Skip to content

Commit a13eea6

Browse files
committed
Merge tag 'for-3.8-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
Pull new F2FS filesystem from Jaegeuk Kim: "Introduce a new file system, Flash-Friendly File System (F2FS), to Linux 3.8. Highlights: - Add initial f2fs source codes - Fix an endian conversion bug - Fix build failures on random configs - Fix the power-off-recovery routine - Minor cleanup, coding style, and typos patches" From the Kconfig help text: F2FS is based on Log-structured File System (LFS), which supports versatile "flash-friendly" features. The design has been focused on addressing the fundamental issues in LFS, which are snowball effect of wandering tree and high cleaning overhead. Since flash-based storages show different characteristics according to the internal geometry or flash memory management schemes aka FTL, F2FS and tools support various parameters not only for configuring on-disk layout, but also for selecting allocation and cleaning algorithms. and there's an article by Neil Brown about it on lwn.net: http://lwn.net/Articles/518988/ * tag 'for-3.8-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (36 commits) f2fs: fix tracking parent inode number f2fs: cleanup the f2fs_bio_alloc routine f2fs: introduce accessor to retrieve number of dentry slots f2fs: remove redundant call to f2fs_put_page in delete entry f2fs: make use of GFP_F2FS_ZERO for setting gfp_mask f2fs: rewrite f2fs_bio_alloc to make it simpler f2fs: fix a typo in f2fs documentation f2fs: remove unused variable f2fs: move error condition for mkdir at proper place f2fs: remove unneeded initialization f2fs: check read only condition before beginning write out f2fs: remove unneeded memset from init_once f2fs: show error in case of invalid mount arguments f2fs: fix the compiler warning for uninitialized use of variable f2fs: resolve build failures f2fs: adjust kernel coding style f2fs: fix endian conversion bugs reported by sparse f2fs: remove unneeded version.h header file from f2fs.h f2fs: update the f2fs document f2fs: update Kconfig and Makefile ...
2 parents fcc1688 + 6666e6a commit a13eea6

File tree

29 files changed

+13488
-0
lines changed

29 files changed

+13488
-0
lines changed

Documentation/filesystems/00-INDEX

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ ext4.txt
5050
- info, mount options and specifications for the Ext4 filesystem.
5151
files.txt
5252
- info on file management in the Linux kernel.
53+
f2fs.txt
54+
- info and mount options for the F2FS filesystem.
5355
fuse.txt
5456
- info on the Filesystem in User SpacE including mount options.
5557
gfs2.txt

Documentation/filesystems/f2fs.txt

Lines changed: 421 additions & 0 deletions
Large diffs are not rendered by default.

fs/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ source "fs/pstore/Kconfig"
220220
source "fs/sysv/Kconfig"
221221
source "fs/ufs/Kconfig"
222222
source "fs/exofs/Kconfig"
223+
source "fs/f2fs/Kconfig"
223224

224225
endif # MISC_FILESYSTEMS
225226

fs/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ obj-$(CONFIG_DEBUG_FS) += debugfs/
123123
obj-$(CONFIG_OCFS2_FS) += ocfs2/
124124
obj-$(CONFIG_BTRFS_FS) += btrfs/
125125
obj-$(CONFIG_GFS2_FS) += gfs2/
126+
obj-$(CONFIG_F2FS_FS) += f2fs/
126127
obj-y += exofs/ # Multiple modules
127128
obj-$(CONFIG_CEPH_FS) += ceph/
128129
obj-$(CONFIG_PSTORE) += pstore/

fs/f2fs/Kconfig

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
config F2FS_FS
2+
tristate "F2FS filesystem support (EXPERIMENTAL)"
3+
depends on BLOCK
4+
help
5+
F2FS is based on Log-structured File System (LFS), which supports
6+
versatile "flash-friendly" features. The design has been focused on
7+
addressing the fundamental issues in LFS, which are snowball effect
8+
of wandering tree and high cleaning overhead.
9+
10+
Since flash-based storages show different characteristics according to
11+
the internal geometry or flash memory management schemes aka FTL, F2FS
12+
and tools support various parameters not only for configuring on-disk
13+
layout, but also for selecting allocation and cleaning algorithms.
14+
15+
If unsure, say N.
16+
17+
config F2FS_STAT_FS
18+
bool "F2FS Status Information"
19+
depends on F2FS_FS && DEBUG_FS
20+
default y
21+
help
22+
/sys/kernel/debug/f2fs/ contains information about all the partitions
23+
mounted as f2fs. Each file shows the whole f2fs information.
24+
25+
/sys/kernel/debug/f2fs/status includes:
26+
- major file system information managed by f2fs currently
27+
- average SIT information about whole segments
28+
- current memory footprint consumed by f2fs.
29+
30+
config F2FS_FS_XATTR
31+
bool "F2FS extended attributes"
32+
depends on F2FS_FS
33+
default y
34+
help
35+
Extended attributes are name:value pairs associated with inodes by
36+
the kernel or by users (see the attr(5) manual page, or visit
37+
<http://acl.bestbits.at/> for details).
38+
39+
If unsure, say N.
40+
41+
config F2FS_FS_POSIX_ACL
42+
bool "F2FS Access Control Lists"
43+
depends on F2FS_FS_XATTR
44+
select FS_POSIX_ACL
45+
default y
46+
help
47+
Posix Access Control Lists (ACLs) support permissions for users and
48+
gourps beyond the owner/group/world scheme.
49+
50+
To learn more about Access Control Lists, visit the POSIX ACLs for
51+
Linux website <http://acl.bestbits.at/>.
52+
53+
If you don't know what Access Control Lists are, say N

fs/f2fs/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
obj-$(CONFIG_F2FS_FS) += f2fs.o
2+
3+
f2fs-y := dir.o file.o inode.o namei.o hash.o super.o
4+
f2fs-y += checkpoint.o gc.o data.o node.o segment.o recovery.o
5+
f2fs-$(CONFIG_F2FS_STAT_FS) += debug.o
6+
f2fs-$(CONFIG_F2FS_FS_XATTR) += xattr.o
7+
f2fs-$(CONFIG_F2FS_FS_POSIX_ACL) += acl.o

0 commit comments

Comments
 (0)