Merge tag 'docs-5.11-2' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / Documentation / filesystems / f2fs.rst
index b8ee761..dae15c9 100644 (file)
@@ -260,6 +260,14 @@ compress_extension=%s       Support adding specified extension, so that f2fs can enab
                         For other files, we can still enable compression via ioctl.
                         Note that, there is one reserved special extension '*', it
                         can be set to enable compression for all files.
+compress_chksum                 Support verifying chksum of raw data in compressed cluster.
+compress_mode=%s        Control file compression mode. This supports "fs" and "user"
+                        modes. In "fs" mode (default), f2fs does automatic compression
+                        on the compression enabled files. In "user" mode, f2fs disables
+                        the automaic compression and gives the user discretion of
+                        choosing the target file and the timing. The user can do manual
+                        compression/decompression on the compression enabled files using
+                        ioctls.
 inlinecrypt             When possible, encrypt/decrypt the contents of encrypted
                         files using the blk-crypto framework rather than
                         filesystem-layer encryption. This allows the use of
@@ -810,6 +818,34 @@ Compress metadata layout::
        | data length | data chksum | reserved |      compressed data       |
        +-------------+-------------+----------+----------------------------+
 
+Compression mode
+--------------------------
+
+f2fs supports "fs" and "user" compression modes with "compression_mode" mount option.
+With this option, f2fs provides a choice to select the way how to compress the
+compression enabled files (refer to "Compression implementation" section for how to
+enable compression on a regular inode).
+
+1) compress_mode=fs
+This is the default option. f2fs does automatic compression in the writeback of the
+compression enabled files.
+
+2) compress_mode=user
+This disables the automaic compression and gives the user discretion of choosing the
+target file and the timing. The user can do manual compression/decompression on the
+compression enabled files using F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE
+ioctls like the below.
+
+To decompress a file,
+
+fd = open(filename, O_WRONLY, 0);
+ret = ioctl(fd, F2FS_IOC_DECOMPRESS_FILE);
+
+To compress a file,
+
+fd = open(filename, O_WRONLY, 0);
+ret = ioctl(fd, F2FS_IOC_COMPRESS_FILE);
+
 NVMe Zoned Namespace devices
 ----------------------------