{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-21",
  "slug": "f2fs-node-address-table",
  "term": "F2FS Node Address Table",
  "aliases": [
    "F2FS NAT"
  ],
  "definition": "The F2FS Node Address Table maps node identifiers to the filesystem block addresses of their node blocks.",
  "note": "An indirect node can reference another node by its identifier instead of its changing block location, limiting the wandering-tree update cascade. This is filesystem metadata above the block-device interface, not the SSD controller's flash translation table. [lee]\n\nThe Linux v6.12 node_info structure separates node ID, owner inode, block address and version. current_nat_addr selects a NAT block copy using a bitmap; relocating a node does not mean that its mapping is automatically durable. [node612]",
  "related": [
    "f2fs",
    "wandering-tree-problem",
    "f2fs-segment-information-table",
    "f2fs-checkpoint",
    "ftl"
  ],
  "citations": [
    {
      "id": "lee",
      "title": "Lee, Sim, Hwang and Cho (2015). F2FS: A New File System for Flash Storage. FAST 2015, sections 2.1, 2.2 and 2.7.",
      "url": "https://www.usenix.org/system/files/conference/fast15/fast15-paper-lee.pdf",
      "accessed": "2026-10-21"
    },
    {
      "id": "node612",
      "title": "Linux v6.12 fs/f2fs/node.h: node_info, current_nat_addr and next_nat_addr.",
      "url": "https://github.com/torvalds/linux/blob/v6.12/fs/f2fs/node.h",
      "accessed": "2026-10-21"
    },
    {
      "id": "hesela-f2fs",
      "title": "F2FS: when a successful fsync is not a recovery promise",
      "url": "https://hesela.com/analyses/f2fs-checkpoint-fsync-recovery/#metadata-indirection",
      "accessed": "2026-10-21"
    }
  ]
}
