Skip to content

Commit 380a129

Browse files
committed
Merge tag 'zonefs-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs
Pull new zonefs file system from Damien Le Moal: "Zonefs is a very simple file system exposing each zone of a zoned block device as a file. Unlike a regular file system with native zoned block device support (e.g. f2fs or the on-going btrfs effort), zonefs does not hide the sequential write constraint of zoned block devices to the user. As a result, zonefs is not a POSIX compliant file system. Its goal is to simplify the implementation of zoned block devices support in applications by replacing raw block device file accesses with a richer file based API, avoiding relying on direct block device file ioctls which may be more obscure to developers. One example of this approach is the implementation of LSM (log-structured merge) tree structures (such as used in RocksDB and LevelDB) on zoned block devices by allowing SSTables to be stored in a zone file similarly to a regular file system rather than as a range of sectors of a zoned device. The introduction of the higher level construct "one file is one zone" can help reducing the amount of changes needed in the application while at the same time allowing the use of zoned block devices with various programming languages other than C. Zonefs IO management implementation uses the new iomap generic code. Zonefs has been successfully tested using a functional test suite (available with zonefs userland format tool on github) and a prototype implementation of LevelDB on top of zonefs" * tag 'zonefs-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs: zonefs: Add documentation fs: New zonefs file system
2 parents 490d332 + fcb9c24 commit 380a129

File tree

9 files changed

+2058
-0
lines changed

9 files changed

+2058
-0
lines changed

Documentation/filesystems/zonefs.txt

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

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18496,6 +18496,16 @@ L: [email protected]
1849618496
S: Maintained
1849718497
F: arch/x86/kernel/cpu/zhaoxin.c
1849818498

18499+
ZONEFS FILESYSTEM
18500+
M: Damien Le Moal <[email protected]>
18501+
M: Naohiro Aota <[email protected]>
18502+
R: Johannes Thumshirn <[email protected]>
18503+
18504+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs.git
18505+
S: Maintained
18506+
F: fs/zonefs/
18507+
F: Documentation/filesystems/zonefs.txt
18508+
1849918509
ZPOOL COMPRESSED PAGE STORAGE API
1850018510
M: Dan Streetman <[email protected]>
1850118511

fs/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ source "fs/ocfs2/Kconfig"
4040
source "fs/btrfs/Kconfig"
4141
source "fs/nilfs2/Kconfig"
4242
source "fs/f2fs/Kconfig"
43+
source "fs/zonefs/Kconfig"
4344

4445
config FS_DAX
4546
bool "Direct Access (DAX) support"

fs/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,4 @@ obj-$(CONFIG_PSTORE) += pstore/
134134
obj-$(CONFIG_EFIVAR_FS) += efivarfs/
135135
obj-$(CONFIG_EROFS_FS) += erofs/
136136
obj-$(CONFIG_VBOXSF_FS) += vboxsf/
137+
obj-$(CONFIG_ZONEFS_FS) += zonefs/

fs/zonefs/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
config ZONEFS_FS
2+
tristate "zonefs filesystem support"
3+
depends on BLOCK
4+
depends on BLK_DEV_ZONED
5+
help
6+
zonefs is a simple file system which exposes zones of a zoned block
7+
device (e.g. host-managed or host-aware SMR disk drives) as files.
8+
9+
If unsure, say N.

fs/zonefs/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
obj-$(CONFIG_ZONEFS_FS) += zonefs.o
3+
4+
zonefs-y := super.o

0 commit comments

Comments
 (0)