linux/fs/ext4
Jeff Layton 0b2600f81c
treewide: change inode->i_ino from unsigned long to u64
On 32-bit architectures, unsigned long is only 32 bits wide, which
causes 64-bit inode numbers to be silently truncated. Several
filesystems (NFS, XFS, BTRFS, etc.) can generate inode numbers that
exceed 32 bits, and this truncation can lead to inode number collisions
and other subtle bugs on 32-bit systems.

Change the type of inode->i_ino from unsigned long to u64 to ensure that
inode numbers are always represented as 64-bit values regardless of
architecture. Update all format specifiers treewide from %lu/%lx to
%llu/%llx to match the new type, along with corresponding local variable
types.

This is the bulk treewide conversion. Earlier patches in this series
handled trace events separately to allow trace field reordering for
better struct packing on 32-bit.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260304-iino-u64-v3-12-2257ad83d372@kernel.org
Acked-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-03-06 14:31:28 +01:00
..
.kunitconfig
acl.c
acl.h Revert "ext4: apply umask if ACL support is disabled" 2024-05-02 18:25:39 -04:00
balloc.c fs/ext4: fix typo in comment 2025-11-26 17:13:34 -05:00
bitmap.c ext4: remove sbi argument from ext4_chksum() 2025-05-20 10:31:12 -04:00
block_validity.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
crypto.c ext4: move crypt info pointer to fs-specific part of inode 2025-08-21 13:58:07 +02:00
dir.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
ext4_extents.h ext4: remove unused EXT_STATS macro from ext4_extents.h 2025-07-12 19:01:38 -04:00
ext4_jbd2.c ext4: make data=journal support large block size 2025-11-28 22:35:28 -05:00
ext4_jbd2.h ext4/jbd2: convert jbd2_journal_blocks_per_page() to support large folio 2025-05-20 10:31:12 -04:00
ext4.h treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
extents_status.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
extents_status.h ext4: make ext4_es_lookup_extent() pass out the extent seq counter 2025-11-06 10:44:39 -05:00
extents-test.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
extents.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
fast_commit.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
fast_commit.h ext4: mark move extents fast-commit ineligible 2026-01-19 19:26:35 -05:00
file.c mm.git review status for linus..mm-stable 2026-02-18 20:50:32 -08:00
fsmap.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
fsmap.h
fsync.c ext4: add ext4_emergency_state() helper function 2025-03-13 10:16:34 -04:00
hash.c ext4: make error code in __ext4fs_dirhash() consistent. 2025-11-06 10:32:33 -05:00
ialloc.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
indirect.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
inline.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
inode-test.c ext4: add missing MODULE_DESCRIPTION() 2024-07-05 16:07:24 -04:00
inode.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
ioctl.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
Kconfig ext4: remove obsolete EXT3 config options 2025-09-25 14:47:05 -04:00
Makefile
mballoc-test.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mballoc.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
mballoc.h ext4: refactor choose group to scan group 2025-07-25 09:14:17 -04:00
migrate.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
mmp.c ext4: use super write guard in write_mmp_block() 2025-11-05 22:52:15 +01:00
move_extent.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
namei.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
orphan.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
page-io.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
readpage.c fsverity updates for 7.0 2026-02-12 10:41:34 -08:00
resize.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
super.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
symlink.c ext4_get_link(): fix breakage in RCU mode 2024-02-25 02:10:32 -05:00
sysfs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
truncate.h
verity.c fsverity updates for 7.0 2026-02-12 10:41:34 -08:00
xattr_hurd.c
xattr_security.c
xattr_trusted.c
xattr_user.c
xattr.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
xattr.h ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all() 2025-03-18 00:15:19 -04:00