<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/next/linux-next.git/fs/f2fs, branch master</title>
<subtitle>The linux-next integration testing tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/'/>
<updated>2026-09-04T16:19:21+00:00</updated>
<entry>
<title>f2fs: parameterize block size and mask macros</title>
<updated>2026-09-04T16:19:21+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=6a0dda6838b65609590890bdfe4ffb9c2ab031a1'/>
<id>urn:sha1:6a0dda6838b65609590890bdfe4ffb9c2ab031a1</id>
<content type='text'>
Block size constants, shift counts, masks, and page-to-block ratios were
globally defined assuming a fixed 4KB block size.

Parameterize F2FS_BLKSIZE, F2FS_BLKSIZE_BITS, F2FS_BLKSIZE_MASK,
F2FS_BLKS_PER_PAGE, and CP_CHKSUM_OFFSET with struct f2fs_sb_info *sbi
to reference sbi-&gt;blocksize, sbi-&gt;log_blocksize, and runtime masks.

Update call sites across metadata operations, data I/O, file operations,
garbage collection, inline data, and sysfs information.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe node tree geometry dynamically</title>
<updated>2026-09-04T16:19:04+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4bfdfc5d3d8546d7fb801b25871cd626487ecb8'/>
<id>urn:sha1:a4bfdfc5d3d8546d7fb801b25871cd626487ecb8</id>
<content type='text'>
The file indexing tree boundaries separating direct, indirect, and
double-indirect node blocks depend on the number of data block addresses
and node IDs contained in each node block.

Parameterize index boundary macros (NODE_DIR1_BLOCK,
NODE_DIR2_BLOCK, NODE_IND1_BLOCK, NODE_IND2_BLOCK, and NODE_DIND_BLOCK) and
address capacity helpers (DEF_ADDRS_PER_BLOCK, NIDS_PER_BLOCK,
cur_addrs_per_inode, addrs_per_page, and addrs_per_folio) with
struct f2fs_sb_info *sbi.

Update file mapping, block allocation, truncate, garbage collection,
and recovery paths to compute indexing tree offsets from the runtime
geometry.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: parameterize byte and block conversion macros</title>
<updated>2026-09-04T16:18:43+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=7c8fd5156c90cb1353ad7c64e3118a1645d1802c'/>
<id>urn:sha1:7c8fd5156c90cb1353ad7c64e3118a1645d1802c</id>
<content type='text'>
Byte-to-block and block-to-byte conversion helpers previously relied on
global PAGE_SIZE, PAGE_SHIFT, or F2FS_BLKSIZE_BITS.

Parameterize F2FS_BYTES_TO_BLK, F2FS_BLK_TO_BYTES, F2FS_BLK_END_BYTES,
F2FS_BLK_ALIGN, and max_file_blocks with struct f2fs_sb_info *sbi using
sbi-&gt;log_blocksize.

Update all call sites across data mapping, file operations, fiemap queries,
fsverity checks, NAT bitmap allocations, and truncate paths.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: parameterize sector conversion macros</title>
<updated>2026-09-04T16:18:23+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=87f159c1492f7eb76d51403d88ffd44b76f9e456'/>
<id>urn:sha1:87f159c1492f7eb76d51403d88ffd44b76f9e456</id>
<content type='text'>
Sector-to-block and block-to-sector conversion helpers previously
assumed a fixed sector count per block derived from 4KB pages.

Parameterize F2FS_LOG_SECTORS_PER_BLOCK, SECTOR_FROM_BLOCK, and
SECTOR_TO_BLOCK with struct f2fs_sb_info *sbi, using
sbi-&gt;log_sectors_per_block.

Update all call sites across metadata I/O, data mapping, discard
operations, and zoned block device reporting.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe xattr block layout dynamically</title>
<updated>2026-09-04T16:17:59+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=fbf612f854377402bf223ca21fc2e2ed7367f324'/>
<id>urn:sha1:fbf612f854377402bf223ca21fc2e2ed7367f324</id>
<content type='text'>
The usable capacity of dedicated on-disk extended attribute blocks and
inline xattr regions scales with the filesystem block size.

Parameterize VALID_XATTR_BLOCK_SIZE and MAX_INLINE_XATTR_SIZE to
calculate usable xattr limits dynamically from sbi-&gt;blocksize rather than
hardcoding PAGE_SIZE or DEF_ADDRS_PER_INODE.

Update mount option consistency validation for inline_xattr_size to
evaluate allowed boundaries dynamically against the runtime block size.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe {i,d,id}node block layout dynamically</title>
<updated>2026-09-04T16:17:23+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=49d39bc4b877e02084c3a9b5eceb1cf2d10a735b'/>
<id>urn:sha1:49d39bc4b877e02084c3a9b5eceb1cf2d10a735b</id>
<content type='text'>
An inode block ends with five i_nid entries followed by a node footer.
Data block address pointers (i_addr[]) precede them. Similarly, direct and
indirect node blocks contain data addresses or node IDs followed by a node
footer at the end of the block.

Describe struct f2fs_inode, struct direct_node, and
struct indirect_node using flexible array members. Compute the locations
of i_nid and node footers dynamically from the filesystem block size.
Introduce F2FS_INODE_NIDS() and F2FS_NODE_FOOTER() helpers to access these
tail fields.

Compute sbi-&gt;addrs_per_inode, sbi-&gt;addrs_per_block, and
sbi-&gt;nids_per_block in init_sb_info(), and update node management, file
mapping, and recovery paths accordingly.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe dentry block layout dynamically</title>
<updated>2026-09-04T16:15:33+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=2f5562816facfcae502c32c00411592c5a93e807'/>
<id>urn:sha1:2f5562816facfcae502c32c00411592c5a93e807</id>
<content type='text'>
An on-disk directory block contains a bitmap, reserved padding, an
array of directory entries (struct f2fs_dir_entry), and matching filename
slots. A fixed compile-time structure couples their offsets to 4KB blocks
and relies on static reserved-space definitions.

Remove struct f2fs_dentry_block and compute region offsets (bitmap
bytes, directory-entry count, and filename slots) dynamically from the
filesystem block size. Access directory blocks through
struct f2fs_dentry_ptr views initialized with the runtime geometry.

Update directory operations, inline dentry handling, and recovery paths
to use the dynamic block layout. No functional change is introduced for
4KB blocks.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe orphan block layout dynamically</title>
<updated>2026-09-04T16:14:53+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=0e346faac20cdd46a5c37c65aa457ac523571efd'/>
<id>urn:sha1:0e346faac20cdd46a5c37c65aa457ac523571efd</id>
<content type='text'>
An on-disk orphan block contains a variable-length array of 32-bit
inode numbers followed by a fixed footer at the end of the block. A
compile-time whole-block structure cannot represent the footer position
when the block size varies at runtime.

Remove struct f2fs_orphan_block, introduce
struct f2fs_orphan_block_footer, and compute sbi-&gt;orphans_per_block
dynamically in init_sb_info(). Add helpers to access the inode entry array
and footer from a block buffer.

Update orphan inode recovery, checkpointing, and mount paths to use the
parameterized helpers. This preserves the on-disk format while decoupling
orphan handling from compile-time constants.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe NAT block layout dynamically</title>
<updated>2026-09-04T16:14:28+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=4b1fbe38ce5bf991309fe89bce408c261f1f627b'/>
<id>urn:sha1:4b1fbe38ce5bf991309fe89bce408c261f1f627b</id>
<content type='text'>
A NAT block is a filesystem-block-sized array of struct f2fs_nat_entry
elements. The compile-time NAT_ENTRY_PER_BLOCK definition hardcodes the
NAT capacity to a 4KB block size.

Replace the fixed array in struct f2fs_nat_block with a C flexible
array member, and calculate sbi-&gt;nat_entries_per_block dynamically in
init_sb_info().

Parameterize NAT geometry helpers (NAT_ENTRY_PER_BLOCK,
NAT_BLOCK_OFFSET, f2fs_start_nid, NAT_BLK_CNT, and
f2fs_nat_bitmap_size) with sbi. Update call sites across node management,
checkpointing, GC, and sysfs.

This is a layout-only change without behavioral differences for 4KB
blocks.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: describe SIT block layout dynamically</title>
<updated>2026-09-04T16:13:49+00:00</updated>
<author>
<name>Kelvin Zhang</name>
<email>zhangxp1998@gmail.com</email>
</author>
<published>2026-09-03T23:56:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b41496b999b32ec2f497cdc6d8b395066124f61c'/>
<id>urn:sha1:b41496b999b32ec2f497cdc6d8b395066124f61c</id>
<content type='text'>
An SIT block consists of an on-disk array of struct f2fs_sit_entry elements
whose total capacity depends on the filesystem block size. The existing
fixed SIT_ENTRY_PER_BLOCK macro hardcodes a 4KB block size.

Convert the entries array in struct f2fs_sit_block into a C flexible array
member, and calculate sbi-&gt;sit_entries_per_block dynamically in
init_sb_info().

Parameterize SIT indexing helpers (SIT_ENTRY_PER_BLOCK, SIT_BLOCK_OFFSET,
SIT_BLK_CNT, and f2fs_start_segno) to take struct f2fs_sb_info *sbi, and
update all call sites across segment management, checkpointing, and mount.

This is a layout-only change; valid 4KB filesystems retain identical
runtime geometry and behavior.

Signed-off-by: Kelvin Zhang &lt;zhangxp1998@gmail.com&gt;
Reviewed-by: Chao Yu &lt;chao@kernel.org&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
</feed>
