~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/ext4/inlinedata.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 Inline Data
  4 -----------
  5 
  6 The inline data feature was designed to handle the case that a file's
  7 data is so tiny that it readily fits inside the inode, which
  8 (theoretically) reduces disk block consumption and reduces seeks. If the
  9 file is smaller than 60 bytes, then the data are stored inline in
 10 ``inode.i_block``. If the rest of the file would fit inside the extended
 11 attribute space, then it might be found as an extended attribute
 12 “system.data” within the inode body (“ibody EA”). This of course
 13 constrains the amount of extended attributes one can attach to an inode.
 14 If the data size increases beyond i_block + ibody EA, a regular block
 15 is allocated and the contents moved to that block.
 16 
 17 Pending a change to compact the extended attribute key used to store
 18 inline data, one ought to be able to store 160 bytes of data in a
 19 256-byte inode (as of June 2015, when i_extra_isize is 28). Prior to
 20 that, the limit was 156 bytes due to inefficient use of inode space.
 21 
 22 The inline data feature requires the presence of an extended attribute
 23 for “system.data”, even if the attribute value is zero length.
 24 
 25 Inline Directories
 26 ~~~~~~~~~~~~~~~~~~
 27 
 28 The first four bytes of i_block are the inode number of the parent
 29 directory. Following that is a 56-byte space for an array of directory
 30 entries; see ``struct ext4_dir_entry``. If there is a “system.data”
 31 attribute in the inode body, the EA value is an array of
 32 ``struct ext4_dir_entry`` as well. Note that for inline directories, the
 33 i_block and EA space are treated as separate dirent blocks; directory
 34 entries cannot span the two.
 35 
 36 Inline directory entries are not checksummed, as the inode checksum
 37 should protect all inline data contents.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php