Re: [PATCH v3 00/12] vfs: change inode->i_ino from unsigned long to u64
Mimi Zohar <[email protected]> Mon, 09 Mar 2026 13:47:08 -0400
| Newsgroups | org.kernel.vger.autofs,dev.linux.lists.fsverity,dev.linux.lists.netfs,dev.linux.lists.ntfs3,dev.linux.lists.nvdimm,dev.linux.lists.ocfs2-devel,dev.linux.lists.v9fs,net.sourceforge.lists.linux-f2fs-devel,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mtd,org.kernel.vger.audit,org.kernel.vger.bpf,org.kernel.vger.ceph-devel,org.kernel.vger.ecryptfs,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-can,org.kernel.vger.linux-cifs,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fscrypt,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-hams,org.kernel.vger.linux-integrity,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-nfs,org.kernel.vger.linux-nilfs,org.kernel.vger.linux-perf-users,org.kernel.vger.linux-sctp,org.kernel.vger.linux-security-module,org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-x25,org.kernel.vger.linux-xfs,org.kernel.vger.netdev,org.kernel.vger.selinux,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
[ I/O socket time out. Trimming the To list.] On Wed, 2026-03-04 at 10:32 -0500, Jeff Layton wrote: > This version squashes all of the format-string changes and the i_ino > type change into the same patch. This results in a giant 600+ line patch > at the end of the series, but it does remain bisectable. Because the > patchset was reorganized (again) some of the R-b's and A-b's have been > dropped. >=20 > The entire pile is in the "iino-u64" branch of my tree, if anyone is > interested in testing this. >=20 > https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/ >=20 > Original cover letter follows: >=20 > ----------------------8<----------------------- >=20 > Christian said [1] to "just do it" when I proposed this, so here we are! >=20 > For historical reasons, the inode->i_ino field is an unsigned long, > which means that it's 32 bits on 32 bit architectures. This has caused a > number of filesystems to implement hacks to hash a 64-bit identifier > into a 32-bit field, and deprives us of a universal identifier field for > an inode. >=20 > This patchset changes the inode->i_ino field from an unsigned long to a > u64. This shouldn't make any material difference on 64-bit hosts, but > 32-bit hosts will see struct inode grow by at least 4 bytes. This could > have effects on slabcache sizes and field alignment. >=20 > The bulk of the changes are to format strings and tracepoints, since the > kernel itself doesn't care that much about the i_ino field. The first > patch changes some vfs function arguments, so check that one out > carefully. >=20 > With this change, we may be able to shrink some inode structures. For > instance, struct nfs_inode has a fileid field that holds the 64-bit > inode number. With this set of changes, that field could be eliminated. > I'd rather leave that sort of cleanups for later just to keep this > simple. >=20 > Much of this set was generated by LLM, but I attributed it to myself > since I consider this to be in the "menial tasks" category of LLM usage. >=20 > [1]: https://lore.kernel.org/linux-fsdevel/20260219-portrait-winkt-959070= cee42f@brauner/ >=20 > Signed-off-by: Jeff Layton <[email protected]> Jeff, missing from this patch set is EVM. In hmac_add_misc() EVM copies th= e i_ino and calculates either an HMAC or file meta-data hash, which is then signed.=20 Mimi