Lines Matching +full:right +full:- +full:aligned

1 .. SPDX-License-Identifier: GPL-2.0
4 Enhanced Read-Only File System - EROFS
10 EROFS file-system stands for Enhanced Read-Only File System. Different
11 from other read-only file systems, it aims to be designed for flexibility,
16 - read-only storage media or
18 - part of a fully trusted read-only solution, which means it needs to be
19 immutable and bit-for-bit identical to the official golden image for
22 - hope to save some extra storage space with guaranteed end-to-end performance
28 - Little endian on-disk design;
30 - Currently 4KB block size (nobh) and therefore maximum 16TB address space;
32 - Metadata & data could be mixed by design;
34 - 2 inode versions for different requirements:
42 File change time no yes (64 + 32-bit timestamp)
47 - Support extended attributes (xattrs) as an option;
49 - Support xattr inline and tail-end data inline for all files;
51 - Support POSIX.1e ACLs by using xattrs;
53 - Support transparent file compression as an option:
54 LZ4 algorithm with 4 KB fixed-sized output compression for high performance.
56 The following git tree provides the file system user-space tools under
59 - git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
62 linux-erofs mailing list:
64 - linux-erofs mailing list <linux-erofs@lists.ozlabs.org>
77 disabled In-place I/O decompression only;
80 in-place I/O decompression for the rest
84 It still does in-place I/O decompression
89 On-disk details
93 -------
94 Different from other read-only file systems, an EROFS volume is designed
97 |-> aligned with the block size
103 All data areas should be aligned with the block size, but metadata areas
108 Each valid inode should be aligned with an inode slot, which is a fixed
116 |-> aligned with 8B
117 |-> followed closely
118 + meta_blkaddr blocks |-> another slot
122 |-> aligned with the inode slot size
129 .____________________________________________________|-> aligned with 4B
132 |-> 12 bytes <-|->x * 4 bytes<-| .
139 |-> aligned with 4B
140 |-> aligned with 4B
143 field which all inode versions have -- i_format::
160 1 fixed-sized output data compression (with non-compacted indexes);
162 3 fixed-sized output data compression (with compacted indexes, v5.3+).
167 stored in shared xattrs metadata rather than inlined right after inode.
180 |-> aligned by 4 bytes
181 + xattr_blkaddr blocks |-> aligned with 4 bytes
187 -----------
188 All directories are now organized in a compact on-disk format. Note that
199 / / | nameoff1 | nameoffN-1
202 |___.0___|____1___|_____|___N-1__|____0_____|____1_____|_____|___N-1____|
212 introduce another on-disk field at all.
215 -----------
216 Currently, EROFS supports 4KB fixed-sized output transparent file compression,
219 |---- Variant-Length Extent ----|-------- VLE --------|----- VLE -----
225 |-> cluster <-|-> cluster <-|-> cluster <-|-> cluster <-|-> cluster <-|
233 |-> cluster <-|-> cluster <-|-> cluster <-|
236 Currently each on-disk physical cluster can contain 4KB (un)compressed data
237 at most. For each logical cluster, there is a corresponding on-disk index to