Re: [PATCH 01/61] vfs: widen inode hash/lookup functions to u64
Damien Le Moal <[email protected]> Fri, 27 Feb 2026 07:56:18 +0900
| 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.ceph-devel,org.kernel.vger.ecryptfs,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-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 |
|---|---|
| Organization | Western Digital Research |
| Message-ID | <[email protected]> |
On 2/27/26 00:55, Jeff Layton wrote: > Change the inode hash/lookup VFS API functions to accept u64 parameters > instead of unsigned long for inode numbers and hash values. This is > preparation for widening i_ino itself to u64, which will allow > filesystems to store full 64-bit inode numbers on 32-bit architectures. > > Since unsigned long implicitly widens to u64 on all architectures, this > change is backward-compatible with all existing callers. > > Functions updated: > - hash(), find_inode_fast(), find_inode_by_ino_rcu(), test_inode_iunique() > - __insert_inode_hash(), iget_locked(), iget5_locked(), iget5_locked_rcu() > - ilookup(), ilookup5(), ilookup5_nowait() > - find_inode_nowait(), find_inode_rcu() > - inode_insert5(), insert_inode_locked4() > - insert_inode_locked() (local variable) > - dump_mapping() (local variable and format string) > > Signed-off-by: Jeff Layton <[email protected]> [...] > -int insert_inode_locked4(struct inode *inode, unsigned long hashval, > +int insert_inode_locked4(struct inode *inode, u64 hashval, > int (*test)(struct inode *, void *), void *data) > { > struct inode *old; > @@ -2642,7 +2642,7 @@ void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev) > break; > default: > printk(KERN_DEBUG "init_special_inode: bogus i_mode (%o) for" > - " inode %s:%lu\n", mode, inode->i_sb->s_id, > + " inode %s:%llu\n", mode, inode->i_sb->s_id, Hmmm. the type of ino in struct inode is changed in patch 2, not this patch. So this feels incorrect. Why not just squash patch 2 in here ? While at it, maybe you could change this to use pr_debug() too ? -- Damien Le Moal Western Digital Research