composefs 0.3.0

Rust library for the composefs filesystem
Documentation
---
source: tests/mkfs.rs
expression: debug_fs(fs)
snapshot_kind: text
---
00000000 ComposefsHeader
      +0     magic: U32(3497550490)
      +4     version: U32(1)
      +c     composefs_version: U32(2)

00000020 Padding
    +3e0     # 992 nul bytes

00000400 Superblock
      +0     magic: U32(3774210530)
      +8     feature_compat: U32(6)
      +c     blkszbits: 12
      +e     root_nid: U16(36)
     +10     inos: U64(8)
     +24     blocks: U32(1)

# Filename "/"
# nid #36
00000480 ExtendedInodeHeader
      +0     format: 5 = Extended | Ok(FlatInline)
      +4     mode: 0040555 (directory)
      +8     size: U64(170)
     +14     ino: U32(36)
     +2c     nlink: U32(2)
     +40 --- inline directory entries ---
      +0     inode_offset: U64(36)
      +8     name_offset: U16(108)
      +a     file_type: Directory
     +6c     # name: "."

      +c     inode_offset: U64(36)
     +14     name_offset: U16(109)
     +16     file_type: Directory
     +6d     # name: ".."

     +18     inode_offset: U64(44)
     +20     name_offset: U16(111)
     +22     file_type: BlockDevice
     +6f     # name: "blkdev"

     +24     inode_offset: U64(46)
     +2c     name_offset: U16(117)
     +2e     file_type: CharacterDevice
     +75     # name: "chrdev"

     +30     inode_offset: U64(48)
     +38     name_offset: U16(123)
     +3a     file_type: Fifo
     +7b     # name: "fifo"

     +3c     inode_offset: U64(50)
     +44     name_offset: U16(127)
     +46     file_type: RegularFile
     +7f     # name: "regular-external"

     +48     inode_offset: U64(57)
     +50     name_offset: U16(143)
     +52     file_type: RegularFile
     +8f     # name: "regular-inline"

     +54     inode_offset: U64(60)
     +5c     name_offset: U16(157)
     +5e     file_type: Socket
     +9d     # name: "socket"

     +60     inode_offset: U64(62)
     +68     name_offset: U16(163)
     +6a     file_type: Symlink
     +a3     # name: "symlink"

0000056a Padding
     +16     # 22 nul bytes

# Filename "/blkdev"
# nid #44
00000580 ExtendedInodeHeader
      +0     format: 1 = Extended | Ok(FlatPlain)
      +4     mode: 0060000 (blockdev)
     +10     u: U32(123)
     +14     ino: U32(44)
     +2c     nlink: U32(1)

# Filename "/chrdev"
# nid #46
000005c0 ExtendedInodeHeader
      +0     format: 1 = Extended | Ok(FlatPlain)
      +4     mode: 0020000 (chardev)
     +10     u: U32(123)
     +14     ino: U32(46)
     +2c     nlink: U32(1)

# Filename "/fifo"
# nid #48
00000600 ExtendedInodeHeader
      +0     format: 1 = Extended | Ok(FlatPlain)
      +4     mode: 0010000 (fifo)
     +14     ino: U32(48)
     +2c     nlink: U32(1)

# Filename "/regular-external"
# nid #50
00000640 ExtendedInodeHeader
      +0     format: 9 = Extended | Ok(ChunkBased)
      +2     xattr_icount: U16(37)
      +4     mode: 0100000 (regular file)
      +8     size: U64(1234)
     +10     u: U32(31)
     +14     ino: U32(50)
     +2c     nlink: U32(1)
     +40     name_filter: U32(2147352575)
     +4c     xattr: (4 16 36) trusted."overlay.metacopy" = "\0$\0\u{1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
     +84     xattr: (4 16 66) trusted."overlay.redirect" = "/5a/5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a"
     +d0                                       ff ff ff ff  |            ....|

# Filename "/regular-inline"
# nid #57
00000720 ExtendedInodeHeader
      +0     format: 5 = Extended | Ok(FlatInline)
      +4     mode: 0100000 (regular file)
      +8     size: U64(4)
     +14     ino: U32(57)
     +2c     nlink: U32(1)
     +40     inline: "hihi"

00000764 Padding
     +1c     # 28 nul bytes

# Filename "/socket"
# nid #60
00000780 ExtendedInodeHeader
      +0     format: 1 = Extended | Ok(FlatPlain)
      +4     mode: 0140000 (socket)
     +14     ino: U32(60)
     +2c     nlink: U32(1)

# Filename "/symlink"
# nid #62
000007c0 ExtendedInodeHeader
      +0     format: 5 = Extended | Ok(FlatInline)
      +4     mode: 0120000 (symlink)
      +8     size: U64(7)
     +14     ino: U32(62)
     +2c     nlink: U32(1)
     +40     inline: "/target"

00000807 Padding
    +7f9     # 2041 nul bytes


Space statistics (total size 4096B):
  extended inode = 853B, 20.83%
  header = 32B, 0.78%
  superblock = 128B, 3.12%
  padding extended inode -> eof = 2041B, 49.83%
  padding extended inode -> extended inode = 50B, 1.22%
  padding header -> superblock = 992B, 24.22%