Linux Security Modules development
 help / color / mirror / Atom feed
* Re: [PATCH 38/61] jfs: update format strings for u64 i_ino
From: Dave Kleikamp @ 2026-02-26 16:30 UTC (permalink / raw)
  To: Jeff Layton, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Paulo Alcantara,
	Andreas Dilger, Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust,
	Anna Schumaker, Chuck Lever, NeilBrown, Olga Kornievskaia,
	Dai Ngo, Tom Talpey, Steve French, Ronnie Sahlberg,
	Shyam Prasad N, Bharath SM, Alexander Aring, Ryusuke Konishi,
	Viacheslav Dubeyko, Eric Van Hensbergen, Latchesar Ionkov,
	Dominique Martinet, Christian Schoenebeck, David Sterba,
	Marc Dionne, Ian Kent, Luis de Bethencourt, Salah Triki,
	Tigran A. Aivazian, Ilya Dryomov, Alex Markuze, Jan Harkes, coda,
	Nicolas Pitre, Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Konstantin Komarov,
	Mark Fasheh, Joel Becker, Joseph Qi, Mike Marshall,
	Martin Brandenburg, Miklos Szeredi, Anders Larsen, Zhihao Cheng,
	Damien Le Moal, Naohiro Aota, Johannes Thumshirn, John Johansen,
	Paul Moore, James Morris, Serge E. Hallyn, Mimi Zohar,
	Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-38-ccceff366db9@kernel.org>

On 2/26/26 9:55AM, Jeff Layton wrote:
> Update format strings and local variable types in jfs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

Acked-by: Dave Kleikamp <dave.kleikamp@oracle.com>

> ---
>   fs/jfs/inode.c        | 2 +-
>   fs/jfs/jfs_imap.c     | 2 +-
>   fs/jfs/jfs_metapage.c | 2 +-
>   3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
> index 4709762713efc5f1c6199ccfd9ecefe933e13f67..c7914dbc91ed97e200edbd114e2d4c695b46fb7e 100644
> --- a/fs/jfs/inode.c
> +++ b/fs/jfs/inode.c
> @@ -64,7 +64,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino)
>   		inode->i_op = &jfs_file_inode_operations;
>   		init_special_inode(inode, inode->i_mode, inode->i_rdev);
>   	} else {
> -		printk(KERN_DEBUG "JFS: Invalid file type 0%04o for inode %lu.\n",
> +		printk(KERN_DEBUG "JFS: Invalid file type 0%04o for inode %llu.\n",
>   		       inode->i_mode, inode->i_ino);
>   		iget_failed(inode);
>   		return ERR_PTR(-EIO);
> diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
> index 294a67327c735fb9cbe074078ed72e872862d710..3d714fff09992173dfe6c9c74980f034ba4e1a72 100644
> --- a/fs/jfs/jfs_imap.c
> +++ b/fs/jfs/jfs_imap.c
> @@ -302,7 +302,7 @@ int diRead(struct inode *ip)
>   	unsigned long pageno;
>   	int rel_inode;
>   
> -	jfs_info("diRead: ino = %ld", ip->i_ino);
> +	jfs_info("diRead: ino = %lld", ip->i_ino);
>   
>   	ipimap = sbi->ipimap;
>   	JFS_IP(ip)->ipimap = ipimap;
> diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
> index 64c6eaa7f3f264ac7c6c71ad8dd0d59b63f15414..714dbf34b7ac17f82ee9ebec2f9a5b4c5e6f7356 100644
> --- a/fs/jfs/jfs_metapage.c
> +++ b/fs/jfs/jfs_metapage.c
> @@ -692,7 +692,7 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
>   	unsigned long page_index;
>   	unsigned long page_offset;
>   
> -	jfs_info("__get_metapage: ino = %ld, lblock = 0x%lx, abs=%d",
> +	jfs_info("__get_metapage: ino = %lld, lblock = 0x%lx, abs=%d",
>   		 inode->i_ino, lblock, absolute);
>   
>   	l2bsize = inode->i_blkbits;
> 


^ permalink raw reply

* Re: [PATCH 19/61] affs: update format strings for u64 i_ino
From: David Sterba @ 2026-02-26 16:49 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-19-ccceff366db9@kernel.org>

On Thu, Feb 26, 2026 at 10:55:21AM -0500, Jeff Layton wrote:
> Update format strings and local variable types in affs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

Acked-by: David Sterba <dsterba@suse.com>

^ permalink raw reply

* Re: [PATCH 00/61] vfs: change inode->i_ino from unsigned long to u64
From: Matthew Wilcox @ 2026-02-26 16:49 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Eric Biggers,
	Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-0-ccceff366db9@kernel.org>

On Thu, Feb 26, 2026 at 10:55:02AM -0500, Jeff Layton wrote:
> 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.

Why are the format strings all done as separate patches?  Don't we get
bisection hazards by splitting it apart this way?

^ permalink raw reply

* Re: [PATCH 13/61] smb: store full 64-bit uniqueid in i_ino
From: Paulo Alcantara @ 2026-02-26 16:57 UTC (permalink / raw)
  To: Jeff Layton, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25, Jeff Layton
In-Reply-To: <20260226-iino-u64-v1-13-ccceff366db9@kernel.org>

Jeff Layton <jlayton@kernel.org> writes:

> With i_ino now u64, CIFS/SMB can store the full 64-bit uniqueid in
> i_ino without the XOR-folding hack previously needed on 32-bit
> architectures.
>
> - Simplify cifs_uniqueid_to_ino_t() to return u64 directly
> - Update hash variable type in cifs_get_inode_info()
> - Update format strings from %lu to %llu
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/smb/client/cifsfs.h | 12 +++---------
>  fs/smb/client/inode.c  |  4 ++--
>  2 files changed, 5 insertions(+), 11 deletions(-)

Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>

^ permalink raw reply

* Re: [PATCH 14/61] smb: remove cifs_uniqueid_to_ino_t()
From: Paulo Alcantara @ 2026-02-26 16:58 UTC (permalink / raw)
  To: Jeff Layton, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25, Jeff Layton
In-Reply-To: <20260226-iino-u64-v1-14-ccceff366db9@kernel.org>

Jeff Layton <jlayton@kernel.org> writes:

> Now that i_ino is u64, cifs_uniqueid_to_ino_t() is a trivial identity
> function. Remove it and use fattr->cf_uniqueid directly at both call
> sites.
>
> Also remove the now-unused #include <linux/hash.h>, which was only
> needed for the old XOR-folding logic.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/smb/client/cifsfs.h  | 11 -----------
>  fs/smb/client/inode.c   |  2 +-
>  fs/smb/client/readdir.c |  2 +-
>  3 files changed, 2 insertions(+), 13 deletions(-)

Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>

^ permalink raw reply

* Re: [PATCH 01/61] vfs: widen inode hash/lookup functions to u64
From: Jan Kara @ 2026-02-26 17:00 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-1-ccceff366db9@kernel.org>

On Thu 26-02-26 10:55:03, 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 <jlayton@kernel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/inode.c         | 46 +++++++++++++++++++++++-----------------------
>  include/linux/fs.h | 26 +++++++++++++-------------
>  2 files changed, 36 insertions(+), 36 deletions(-)
> 
> diff --git a/fs/inode.c b/fs/inode.c
> index cc12b68e021b2c97cc88a46ddc736334ecb8edfa..2cabec9043e8176d20aecc5ce7e0f276c114f122 100644
> --- a/fs/inode.c
> +++ b/fs/inode.c
> @@ -672,7 +672,7 @@ static inline void inode_sb_list_del(struct inode *inode)
>  	}
>  }
>  
> -static unsigned long hash(struct super_block *sb, unsigned long hashval)
> +static unsigned long hash(struct super_block *sb, u64 hashval)
>  {
>  	unsigned long tmp;
>  
> @@ -685,12 +685,12 @@ static unsigned long hash(struct super_block *sb, unsigned long hashval)
>  /**
>   *	__insert_inode_hash - hash an inode
>   *	@inode: unhashed inode
> - *	@hashval: unsigned long value used to locate this object in the
> + *	@hashval: u64 value used to locate this object in the
>   *		inode_hashtable.
>   *
>   *	Add an inode to the inode hash for this superblock.
>   */
> -void __insert_inode_hash(struct inode *inode, unsigned long hashval)
> +void __insert_inode_hash(struct inode *inode, u64 hashval)
>  {
>  	struct hlist_head *b = inode_hashtable + hash(inode->i_sb, hashval);
>  
> @@ -726,7 +726,7 @@ void dump_mapping(const struct address_space *mapping)
>  	struct dentry *dentry_ptr;
>  	struct dentry dentry;
>  	char fname[64] = {};
> -	unsigned long ino;
> +	u64 ino;
>  
>  	/*
>  	 * If mapping is an invalid pointer, we don't want to crash
> @@ -750,14 +750,14 @@ void dump_mapping(const struct address_space *mapping)
>  	}
>  
>  	if (!dentry_first) {
> -		pr_warn("aops:%ps ino:%lx\n", a_ops, ino);
> +		pr_warn("aops:%ps ino:%llx\n", a_ops, ino);
>  		return;
>  	}
>  
>  	dentry_ptr = container_of(dentry_first, struct dentry, d_u.d_alias);
>  	if (get_kernel_nofault(dentry, dentry_ptr) ||
>  	    !dentry.d_parent || !dentry.d_name.name) {
> -		pr_warn("aops:%ps ino:%lx invalid dentry:%px\n",
> +		pr_warn("aops:%ps ino:%llx invalid dentry:%px\n",
>  				a_ops, ino, dentry_ptr);
>  		return;
>  	}
> @@ -768,7 +768,7 @@ void dump_mapping(const struct address_space *mapping)
>  	 * Even if strncpy_from_kernel_nofault() succeeded,
>  	 * the fname could be unreliable
>  	 */
> -	pr_warn("aops:%ps ino:%lx dentry name(?):\"%s\"\n",
> +	pr_warn("aops:%ps ino:%llx dentry name(?):\"%s\"\n",
>  		a_ops, ino, fname);
>  }
>  
> @@ -1087,7 +1087,7 @@ static struct inode *find_inode(struct super_block *sb,
>   * iget_locked for details.
>   */
>  static struct inode *find_inode_fast(struct super_block *sb,
> -				struct hlist_head *head, unsigned long ino,
> +				struct hlist_head *head, u64 ino,
>  				bool hash_locked, bool *isnew)
>  {
>  	struct inode *inode = NULL;
> @@ -1301,7 +1301,7 @@ EXPORT_SYMBOL(unlock_two_nondirectories);
>   * Note that both @test and @set are called with the inode_hash_lock held, so
>   * they can't sleep.
>   */
> -struct inode *inode_insert5(struct inode *inode, unsigned long hashval,
> +struct inode *inode_insert5(struct inode *inode, u64 hashval,
>  			    int (*test)(struct inode *, void *),
>  			    int (*set)(struct inode *, void *), void *data)
>  {
> @@ -1378,7 +1378,7 @@ EXPORT_SYMBOL(inode_insert5);
>   * Note that both @test and @set are called with the inode_hash_lock held, so
>   * they can't sleep.
>   */
> -struct inode *iget5_locked(struct super_block *sb, unsigned long hashval,
> +struct inode *iget5_locked(struct super_block *sb, u64 hashval,
>  		int (*test)(struct inode *, void *),
>  		int (*set)(struct inode *, void *), void *data)
>  {
> @@ -1408,7 +1408,7 @@ EXPORT_SYMBOL(iget5_locked);
>   * This is equivalent to iget5_locked, except the @test callback must
>   * tolerate the inode not being stable, including being mid-teardown.
>   */
> -struct inode *iget5_locked_rcu(struct super_block *sb, unsigned long hashval,
> +struct inode *iget5_locked_rcu(struct super_block *sb, u64 hashval,
>  		int (*test)(struct inode *, void *),
>  		int (*set)(struct inode *, void *), void *data)
>  {
> @@ -1455,7 +1455,7 @@ EXPORT_SYMBOL_GPL(iget5_locked_rcu);
>   * hashed, and with the I_NEW flag set.  The file system gets to fill it in
>   * before unlocking it via unlock_new_inode().
>   */
> -struct inode *iget_locked(struct super_block *sb, unsigned long ino)
> +struct inode *iget_locked(struct super_block *sb, u64 ino)
>  {
>  	struct hlist_head *head = inode_hashtable + hash(sb, ino);
>  	struct inode *inode;
> @@ -1527,7 +1527,7 @@ EXPORT_SYMBOL(iget_locked);
>   *
>   * Returns 1 if the inode number is unique, 0 if it is not.
>   */
> -static int test_inode_iunique(struct super_block *sb, unsigned long ino)
> +static int test_inode_iunique(struct super_block *sb, u64 ino)
>  {
>  	struct hlist_head *b = inode_hashtable + hash(sb, ino);
>  	struct inode *inode;
> @@ -1616,7 +1616,7 @@ EXPORT_SYMBOL(igrab);
>   *
>   * Note2: @test is called with the inode_hash_lock held, so can't sleep.
>   */
> -struct inode *ilookup5_nowait(struct super_block *sb, unsigned long hashval,
> +struct inode *ilookup5_nowait(struct super_block *sb, u64 hashval,
>  		int (*test)(struct inode *, void *), void *data, bool *isnew)
>  {
>  	struct hlist_head *head = inode_hashtable + hash(sb, hashval);
> @@ -1647,7 +1647,7 @@ EXPORT_SYMBOL(ilookup5_nowait);
>   *
>   * Note: @test is called with the inode_hash_lock held, so can't sleep.
>   */
> -struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
> +struct inode *ilookup5(struct super_block *sb, u64 hashval,
>  		int (*test)(struct inode *, void *), void *data)
>  {
>  	struct inode *inode;
> @@ -1677,7 +1677,7 @@ EXPORT_SYMBOL(ilookup5);
>   * Search for the inode @ino in the inode cache, and if the inode is in the
>   * cache, the inode is returned with an incremented reference count.
>   */
> -struct inode *ilookup(struct super_block *sb, unsigned long ino)
> +struct inode *ilookup(struct super_block *sb, u64 ino)
>  {
>  	struct hlist_head *head = inode_hashtable + hash(sb, ino);
>  	struct inode *inode;
> @@ -1726,8 +1726,8 @@ EXPORT_SYMBOL(ilookup);
>   * very carefully implemented.
>   */
>  struct inode *find_inode_nowait(struct super_block *sb,
> -				unsigned long hashval,
> -				int (*match)(struct inode *, unsigned long,
> +				u64 hashval,
> +				int (*match)(struct inode *, u64,
>  					     void *),
>  				void *data)
>  {
> @@ -1773,7 +1773,7 @@ EXPORT_SYMBOL(find_inode_nowait);
>   *
>   * The caller must hold the RCU read lock.
>   */
> -struct inode *find_inode_rcu(struct super_block *sb, unsigned long hashval,
> +struct inode *find_inode_rcu(struct super_block *sb, u64 hashval,
>  			     int (*test)(struct inode *, void *), void *data)
>  {
>  	struct hlist_head *head = inode_hashtable + hash(sb, hashval);
> @@ -1812,7 +1812,7 @@ EXPORT_SYMBOL(find_inode_rcu);
>   * The caller must hold the RCU read lock.
>   */
>  struct inode *find_inode_by_ino_rcu(struct super_block *sb,
> -				    unsigned long ino)
> +				    u64 ino)
>  {
>  	struct hlist_head *head = inode_hashtable + hash(sb, ino);
>  	struct inode *inode;
> @@ -1833,7 +1833,7 @@ EXPORT_SYMBOL(find_inode_by_ino_rcu);
>  int insert_inode_locked(struct inode *inode)
>  {
>  	struct super_block *sb = inode->i_sb;
> -	ino_t ino = inode->i_ino;
> +	u64 ino = inode->i_ino;
>  	struct hlist_head *head = inode_hashtable + hash(sb, ino);
>  	bool isnew;
>  
> @@ -1884,7 +1884,7 @@ int insert_inode_locked(struct inode *inode)
>  }
>  EXPORT_SYMBOL(insert_inode_locked);
>  
> -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,
>  				  inode->i_ino);
>  		break;
>  	}
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 8b3dd145b25ec12b00ac1df17a952d9116b88047..dfa1f475b1c480c503ab6f00e891aa9b051607fa 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -2935,32 +2935,32 @@ static inline int inode_generic_drop(struct inode *inode)
>  extern void d_mark_dontcache(struct inode *inode);
>  
>  extern struct inode *ilookup5_nowait(struct super_block *sb,
> -		unsigned long hashval, int (*test)(struct inode *, void *),
> +		u64 hashval, int (*test)(struct inode *, void *),
>  		void *data, bool *isnew);
> -extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
> +extern struct inode *ilookup5(struct super_block *sb, u64 hashval,
>  		int (*test)(struct inode *, void *), void *data);
> -extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
> +extern struct inode *ilookup(struct super_block *sb, u64 ino);
>  
> -extern struct inode *inode_insert5(struct inode *inode, unsigned long hashval,
> +extern struct inode *inode_insert5(struct inode *inode, u64 hashval,
>  		int (*test)(struct inode *, void *),
>  		int (*set)(struct inode *, void *),
>  		void *data);
> -struct inode *iget5_locked(struct super_block *, unsigned long,
> +struct inode *iget5_locked(struct super_block *, u64,
>  			   int (*test)(struct inode *, void *),
>  			   int (*set)(struct inode *, void *), void *);
> -struct inode *iget5_locked_rcu(struct super_block *, unsigned long,
> +struct inode *iget5_locked_rcu(struct super_block *, u64,
>  			       int (*test)(struct inode *, void *),
>  			       int (*set)(struct inode *, void *), void *);
> -extern struct inode * iget_locked(struct super_block *, unsigned long);
> +extern struct inode *iget_locked(struct super_block *, u64);
>  extern struct inode *find_inode_nowait(struct super_block *,
> -				       unsigned long,
> +				       u64,
>  				       int (*match)(struct inode *,
> -						    unsigned long, void *),
> +						    u64, void *),
>  				       void *data);
> -extern struct inode *find_inode_rcu(struct super_block *, unsigned long,
> +extern struct inode *find_inode_rcu(struct super_block *, u64,
>  				    int (*)(struct inode *, void *), void *);
> -extern struct inode *find_inode_by_ino_rcu(struct super_block *, unsigned long);
> -extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *);
> +extern struct inode *find_inode_by_ino_rcu(struct super_block *, u64);
> +extern int insert_inode_locked4(struct inode *, u64, int (*test)(struct inode *, void *), void *);
>  extern int insert_inode_locked(struct inode *);
>  #ifdef CONFIG_DEBUG_LOCK_ALLOC
>  extern void lockdep_annotate_inode_mutex_key(struct inode *inode);
> @@ -3015,7 +3015,7 @@ int setattr_should_drop_sgid(struct mnt_idmap *idmap,
>   */
>  #define alloc_inode_sb(_sb, _cache, _gfp) kmem_cache_alloc_lru(_cache, &_sb->s_inode_lru, _gfp)
>  
> -extern void __insert_inode_hash(struct inode *, unsigned long hashval);
> +extern void __insert_inode_hash(struct inode *, u64 hashval);
>  static inline void insert_inode_hash(struct inode *inode)
>  {
>  	__insert_inode_hash(inode, inode->i_ino);
> 
> -- 
> 2.53.0
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply

* Re: [PATCH 00/61] vfs: change inode->i_ino from unsigned long to u64
From: Jeff Layton @ 2026-02-26 17:01 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Eric Biggers,
	Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <aaB5lgKd8FOIizPg@casper.infradead.org>

On Thu, 2026-02-26 at 16:49 +0000, Matthew Wilcox wrote:
> On Thu, Feb 26, 2026 at 10:55:02AM -0500, Jeff Layton wrote:
> > 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.
> 
> Why are the format strings all done as separate patches?  Don't we get
> bisection hazards by splitting it apart this way?

One big patch would be Yuuuuge. We could certainly do it that way, but
it'll be nightmare if we ever do have to revert part of it. What do you
suggest?

-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply

* Re: [PATCH 03/61] trace: update VFS-layer trace events for u64 i_ino
From: Jan Kara @ 2026-02-26 17:11 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-3-ccceff366db9@kernel.org>

On Thu 26-02-26 10:55:05, Jeff Layton wrote:
> Update trace event definitions in VFS-layer trace headers to use u64
> instead of ino_t/unsigned long for inode number fields, and change
> format strings from %lu/%lx to %llu/%llx to match.
> 
> This is needed because i_ino is now u64. Changing trace event field
> types changes the binary trace format, but the self-describing format
> metadata handles this transparently for modern trace-cmd and perf.
> 
> Files updated:
>   - cachefiles.h, filelock.h, filemap.h, fs_dax.h, fsverity.h,
>     hugetlbfs.h, netfs.h, readahead.h, timestamp.h, writeback.h
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

...

> diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
> index 4d3d8c8f3a1bc3e5ef10fc96e3c6dbbd0cf00c98..cc7651749eb3ce1123cb3ea9496f0803a0f4c1a0 100644
> --- a/include/trace/events/writeback.h
> +++ b/include/trace/events/writeback.h
> @@ -67,7 +67,7 @@ DECLARE_EVENT_CLASS(writeback_folio_template,
>  
>  	TP_STRUCT__entry (
>  		__array(char, name, 32)
> -		__field(ino_t, ino)
> +		__field(u64, ino)
>  		__field(pgoff_t, index)
>  	),
>  
> @@ -79,9 +79,9 @@ DECLARE_EVENT_CLASS(writeback_folio_template,
>  		__entry->index = folio->index;
>  	),
>  
> -	TP_printk("bdi %s: ino=%lu index=%lu",
> +	TP_printk("bdi %s: ino=%llu index=%lu",
>  		__entry->name,
> -		(unsigned long)__entry->ino,
> +		(unsigned long long)__entry->ino,

No need for explicit typing to ULL?

>  		__entry->index
>  	)
>  );
> @@ -108,7 +108,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
>  
>  	TP_STRUCT__entry (
>  		__array(char, name, 32)
> -		__field(ino_t, ino)
> +		__field(u64, ino)
>  		__field(unsigned long, state)
>  		__field(unsigned long, flags)
>  	),
> @@ -123,9 +123,9 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
>  		__entry->flags		= flags;
>  	),
>  
> -	TP_printk("bdi %s: ino=%lu state=%s flags=%s",
> +	TP_printk("bdi %s: ino=%llu state=%s flags=%s",
>  		__entry->name,
> -		(unsigned long)__entry->ino,
> +		(unsigned long long)__entry->ino,

And here as well? And many times below as well...

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply

* Re: [PATCH 57/61] fscrypt: update format strings for u64 i_ino
From: Eric Biggers @ 2026-02-26 17:10 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-57-ccceff366db9@kernel.org>

On Thu, Feb 26, 2026 at 10:55:59AM -0500, Jeff Layton wrote:
> Update format strings from %lu to %llu for inode->i_ino now that
> i_ino is u64 instead of unsigned long.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/crypto/crypto.c   | 2 +-
>  fs/crypto/hooks.c    | 2 +-
>  fs/crypto/keysetup.c | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)

check_for_busy_inodes() needs to be updated too.  It copies i_ino to a
local variable of type 'unsigned long', then prints it with %lu.

Seems that there needs to be a search for other code that copies i_ino
to a local variable, as this issue is unlikely to be unique to here.

- Eric

^ permalink raw reply

* Re: [PATCH 01/61] vfs: widen inode hash/lookup functions to u64
From: Jan Kara @ 2026-02-26 17:14 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <cmxf6pu3xuwvbhg3alu725hd4b3dheowoumd6drolde7pypwor@eplss6764uuf>

On Thu 26-02-26 18:00:36, Jan Kara wrote:
> On Thu 26-02-26 10:55:03, 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 <jlayton@kernel.org>
> 
> Looks good. Feel free to add:
> 
> Reviewed-by: Jan Kara <jack@suse.cz>

Thinking some more about this (and also seeing the discussion about patch
2) - maybe instead of using explicit u64 we should typedef kino_t as u64
and use that?

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply

* Re: [PATCH 03/61] trace: update VFS-layer trace events for u64 i_ino
From: Steven Rostedt @ 2026-02-26 17:48 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Masami Hiramatsu,
	Mathieu Desnoyers, Dan Williams, Matthew Wilcox, Eric Biggers,
	Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-3-ccceff366db9@kernel.org>

On Thu, 26 Feb 2026 10:55:05 -0500
Jeff Layton <jlayton@kernel.org> wrote:

> Update trace event definitions in VFS-layer trace headers to use u64
> instead of ino_t/unsigned long for inode number fields, and change
> format strings from %lu/%lx to %llu/%llx to match.
> 
> This is needed because i_ino is now u64. Changing trace event field
> types changes the binary trace format, but the self-describing format
> metadata handles this transparently for modern trace-cmd and perf.
> 
> Files updated:
>   - cachefiles.h, filelock.h, filemap.h, fs_dax.h, fsverity.h,
>     hugetlbfs.h, netfs.h, readahead.h, timestamp.h, writeback.h
> 

Hmm, on 32 bit systems, this will likely cause "holes" in a lot of these
events.

> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  include/trace/events/cachefiles.h |  18 ++---
>  include/trace/events/filelock.h   |  16 ++---
>  include/trace/events/filemap.h    |  20 +++---
>  include/trace/events/fs_dax.h     |  20 +++---
>  include/trace/events/fsverity.h   |  30 ++++----
>  include/trace/events/hugetlbfs.h  |  28 ++++----
>  include/trace/events/netfs.h      |   4 +-
>  include/trace/events/readahead.h  |  12 ++--
>  include/trace/events/timestamp.h  |  12 ++--
>  include/trace/events/writeback.h  | 148 +++++++++++++++++++-------------------
>  10 files changed, 154 insertions(+), 154 deletions(-)
> 
> diff --git a/include/trace/events/cachefiles.h b/include/trace/events/cachefiles.h
> index a743b2a35ea7001447b3e05d41539cb88013bc7f..f967027711ee823f224abc1b8ab03f63da06ae6f 100644
> --- a/include/trace/events/cachefiles.h
> +++ b/include/trace/events/cachefiles.h
> @@ -251,8 +251,8 @@ TRACE_EVENT(cachefiles_lookup,
>  	    TP_STRUCT__entry(
>  		    __field(unsigned int,		obj)
>  		    __field(short,			error)

There was already a 2 byte hole here, but that's not a big deal.

> -		    __field(unsigned long,		dino)
> -		    __field(unsigned long,		ino)
> +		    __field(u64,			dino)
> +		    __field(u64,			ino)
>  			     ),
>  
>  	    TP_fast_assign(
> @@ -263,7 +263,7 @@ TRACE_EVENT(cachefiles_lookup,
>  		    __entry->error	= IS_ERR(de) ? PTR_ERR(de) : 0;
>  			   ),
>  
> -	    TP_printk("o=%08x dB=%lx B=%lx e=%d",
> +	    TP_printk("o=%08x dB=%llx B=%llx e=%d",
>  		      __entry->obj, __entry->dino, __entry->ino, __entry->error)
>  	    );
>  
> @@ -579,7 +579,7 @@ TRACE_EVENT(cachefiles_mark_active,
>  	    /* Note that obj may be NULL */
>  	    TP_STRUCT__entry(
>  		    __field(unsigned int,		obj)
> -		    __field(ino_t,			inode)
> +		    __field(u64,			inode)

Might be better to reorder any of these that have int first.

		u64	inode;
		int	obj;

Will be packed tighter than:

		int	obj
		u64	inode;

Probably should have changed that before anyway.

>  			     ),
>  
>  	    TP_fast_assign(
> @@ -587,7 +587,7 @@ TRACE_EVENT(cachefiles_mark_active,
>  		    __entry->inode	= inode->i_ino;
>  			   ),
>  
> -	    TP_printk("o=%08x B=%lx",
> +	    TP_printk("o=%08x B=%llx",
>  		      __entry->obj, __entry->inode)
>  	    );
>  
> @@ -600,7 +600,7 @@ TRACE_EVENT(cachefiles_mark_failed,
>  	    /* Note that obj may be NULL */
>  	    TP_STRUCT__entry(
>  		    __field(unsigned int,		obj)
> -		    __field(ino_t,			inode)
> +		    __field(u64,			inode)

Is ino_t being changed? Why the update here?

>  			     ),
>  
>  	    TP_fast_assign(
> @@ -608,7 +608,7 @@ TRACE_EVENT(cachefiles_mark_failed,
>  		    __entry->inode	= inode->i_ino;
>  			   ),
>  
> -	    TP_printk("o=%08x B=%lx",
> +	    TP_printk("o=%08x B=%llx",
>  		      __entry->obj, __entry->inode)
>  	    );
>  
> @@ -621,7 +621,7 @@ TRACE_EVENT(cachefiles_mark_inactive,
>  	    /* Note that obj may be NULL */
>  	    TP_STRUCT__entry(
>  		    __field(unsigned int,		obj)
> -		    __field(ino_t,			inode)
> +		    __field(u64,			inode)

Ditto.

>  			     ),
>  
>  	    TP_fast_assign(
> @@ -629,7 +629,7 @@ TRACE_EVENT(cachefiles_mark_inactive,
>  		    __entry->inode	= inode->i_ino;
>  			   ),
>  
> -	    TP_printk("o=%08x B=%lx",
> +	    TP_printk("o=%08x B=%llx",
>  		      __entry->obj, __entry->inode)
>  	    );
>  
> diff --git a/include/trace/events/filelock.h b/include/trace/events/filelock.h
> index 370016c38a5bbc07d5ba6c102030b49c9eb6424d..41bc752616b25d6cd7955203e2c604029d0b440c 100644
> --- a/include/trace/events/filelock.h
> +++ b/include/trace/events/filelock.h
> @@ -42,7 +42,7 @@ TRACE_EVENT(locks_get_lock_context,
>  	TP_ARGS(inode, type, ctx),
>  
>  	TP_STRUCT__entry(
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)
>  		__field(dev_t, s_dev)
>  		__field(unsigned char, type)
>  		__field(struct file_lock_context *, ctx)
> @@ -55,7 +55,7 @@ TRACE_EVENT(locks_get_lock_context,
>  		__entry->ctx = ctx;
>  	),
>  
> -	TP_printk("dev=0x%x:0x%x ino=0x%lx type=%s ctx=%p",
> +	TP_printk("dev=0x%x:0x%x ino=0x%llx type=%s ctx=%p",
>  		  MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  		  __entry->i_ino, show_fl_type(__entry->type), __entry->ctx)
>  );
> @@ -67,7 +67,7 @@ DECLARE_EVENT_CLASS(filelock_lock,
>  
>  	TP_STRUCT__entry(
>  		__field(struct file_lock *, fl)
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)

Having u64 before a pointer would be tighter on 32 bit systems, and leaves
out any holes in the trace.

>  		__field(dev_t, s_dev)
>  		__field(struct file_lock_core *, blocker)
>  		__field(fl_owner_t, owner)
> @@ -93,7 +93,7 @@ DECLARE_EVENT_CLASS(filelock_lock,
>  		__entry->ret = ret;
>  	),
>  
> -	TP_printk("fl=%p dev=0x%x:0x%x ino=0x%lx fl_blocker=%p fl_owner=%p fl_pid=%u fl_flags=%s fl_type=%s fl_start=%lld fl_end=%lld ret=%d",
> +	TP_printk("fl=%p dev=0x%x:0x%x ino=0x%llx fl_blocker=%p fl_owner=%p fl_pid=%u fl_flags=%s fl_type=%s fl_start=%lld fl_end=%lld ret=%d",
>  		__entry->fl, MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  		__entry->i_ino, __entry->blocker, __entry->owner,
>  		__entry->pid, show_fl_flags(__entry->flags),
> @@ -124,7 +124,7 @@ DECLARE_EVENT_CLASS(filelock_lease,
>  
>  	TP_STRUCT__entry(
>  		__field(struct file_lease *, fl)
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)

Same here.

>  		__field(dev_t, s_dev)
>  		__field(struct file_lock_core *, blocker)
>  		__field(fl_owner_t, owner)
> @@ -146,7 +146,7 @@ DECLARE_EVENT_CLASS(filelock_lease,
>  		__entry->downgrade_time = fl ? fl->fl_downgrade_time : 0;
>  	),
>  
> -	TP_printk("fl=%p dev=0x%x:0x%x ino=0x%lx fl_blocker=%p fl_owner=%p fl_flags=%s fl_type=%s fl_break_time=%lu fl_downgrade_time=%lu",
> +	TP_printk("fl=%p dev=0x%x:0x%x ino=0x%llx fl_blocker=%p fl_owner=%p fl_flags=%s fl_type=%s fl_break_time=%lu fl_downgrade_time=%lu",
>  		__entry->fl, MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  		__entry->i_ino, __entry->blocker, __entry->owner,
>  		show_fl_flags(__entry->flags),
> @@ -175,7 +175,7 @@ TRACE_EVENT(generic_add_lease,
>  	TP_ARGS(inode, fl),
>  
>  	TP_STRUCT__entry(
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)
>  		__field(int, wcount)
>  		__field(int, rcount)
>  		__field(int, icount)
> @@ -196,7 +196,7 @@ TRACE_EVENT(generic_add_lease,
>  		__entry->type = fl->c.flc_type;
>  	),
>  
> -	TP_printk("dev=0x%x:0x%x ino=0x%lx wcount=%d rcount=%d icount=%d fl_owner=%p fl_flags=%s fl_type=%s",
> +	TP_printk("dev=0x%x:0x%x ino=0x%llx wcount=%d rcount=%d icount=%d fl_owner=%p fl_flags=%s fl_type=%s",
>  		MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  		__entry->i_ino, __entry->wcount, __entry->rcount,
>  		__entry->icount, __entry->owner,
> diff --git a/include/trace/events/filemap.h b/include/trace/events/filemap.h
> index f48fe637bfd25885dc6daaf09336ab60626b4944..153491e57cce6df73e30ddee60a52ed7d8923c24 100644
> --- a/include/trace/events/filemap.h
> +++ b/include/trace/events/filemap.h
> @@ -21,7 +21,7 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
>  
>  	TP_STRUCT__entry(
>  		__field(unsigned long, pfn)
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)

Again, this would cause a 32 bit hole.

>  		__field(unsigned long, index)
>  		__field(dev_t, s_dev)
>  		__field(unsigned char, order)
> @@ -38,7 +38,7 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
>  		__entry->order = folio_order(folio);
>  	),
>  
> -	TP_printk("dev %d:%d ino %lx pfn=0x%lx ofs=%lu order=%u",
> +	TP_printk("dev %d:%d ino %llx pfn=0x%lx ofs=%lu order=%u",
>  		MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  		__entry->i_ino,
>  		__entry->pfn,
> @@ -67,7 +67,7 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache_range,
>  	TP_ARGS(mapping, index, last_index),
>  
>  	TP_STRUCT__entry(
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)
>  		__field(dev_t, s_dev)
>  		__field(unsigned long, index)
>  		__field(unsigned long, last_index)
> @@ -85,7 +85,7 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache_range,
>  	),
>  
>  	TP_printk(
> -		"dev=%d:%d ino=%lx ofs=%lld-%lld",
> +		"dev=%d:%d ino=%llx ofs=%lld-%lld",
>  		MAJOR(__entry->s_dev),
>  		MINOR(__entry->s_dev), __entry->i_ino,
>  		((loff_t)__entry->index) << PAGE_SHIFT,
> @@ -117,7 +117,7 @@ TRACE_EVENT(mm_filemap_fault,
>  	TP_ARGS(mapping, index),
>  
>  	TP_STRUCT__entry(
> -		__field(unsigned long, i_ino)
> +		__field(u64, i_ino)
>  		__field(dev_t, s_dev)
>  		__field(unsigned long, index)
>  	),
> @@ -133,7 +133,7 @@ TRACE_EVENT(mm_filemap_fault,
>  	),
>  
>  	TP_printk(
> -		"dev=%d:%d ino=%lx ofs=%lld",
> +		"dev=%d:%d ino=%llx ofs=%lld",
>  		MAJOR(__entry->s_dev),
>  		MINOR(__entry->s_dev), __entry->i_ino,
>  		((loff_t)__entry->index) << PAGE_SHIFT
> @@ -146,7 +146,7 @@ TRACE_EVENT(filemap_set_wb_err,
>  		TP_ARGS(mapping, eseq),
>  
>  		TP_STRUCT__entry(
> -			__field(unsigned long, i_ino)
> +			__field(u64, i_ino)
>  			__field(dev_t, s_dev)
>  			__field(errseq_t, errseq)
>  		),
> @@ -160,7 +160,7 @@ TRACE_EVENT(filemap_set_wb_err,
>  				__entry->s_dev = mapping->host->i_rdev;
>  		),
>  
> -		TP_printk("dev=%d:%d ino=0x%lx errseq=0x%x",
> +		TP_printk("dev=%d:%d ino=0x%llx errseq=0x%x",
>  			MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
>  			__entry->i_ino, __entry->errseq)
>  );
> @@ -172,7 +172,7 @@ TRACE_EVENT(file_check_and_advance_wb_err,
>  
>  		TP_STRUCT__entry(
>  			__field(struct file *, file)
> -			__field(unsigned long, i_ino)
> +			__field(u64, i_ino)

Having a pointer after the u64 is better.

>  			__field(dev_t, s_dev)
>  			__field(errseq_t, old)
>  			__field(errseq_t, new)
> @@ -191,7 +191,7 @@ TRACE_EVENT(file_check_and_advance_wb_err,
>  			__entry->new = file->f_wb_err;
>  		),
>  
> -		TP_printk("file=%p dev=%d:%d ino=0x%lx old=0x%x new=0x%x",
> +		TP_printk("file=%p dev=%d:%d ino=0x%llx old=0x%x new=0x%x",
>  			__entry->file, MAJOR(__entry->s_dev),
>  			MINOR(__entry->s_dev), __entry->i_ino, __entry->old,
>  			__entry->new)
> diff --git a/include/trace/events/fs_dax.h b/include/trace/events/fs_dax.h
> index 50ebc1290ab062a9c30ab00049fb96691f9a0f23..11121baa8ece7928c653b4f874fb10ffbdd02fd0 100644
> --- a/include/trace/events/fs_dax.h
> +++ b/include/trace/events/fs_dax.h
> @@ -12,7 +12,7 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class,
>  		pgoff_t max_pgoff, int result),
>  	TP_ARGS(inode, vmf, max_pgoff, result),
>  	TP_STRUCT__entry(
> -		__field(unsigned long, ino)
> +		__field(u64, ino)
>  		__field(unsigned long, vm_start)
>  		__field(unsigned long, vm_end)
>  		__field(vm_flags_t, vm_flags)
> @@ -35,7 +35,7 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class,
>  		__entry->max_pgoff = max_pgoff;
>  		__entry->result = result;
>  	),
> -	TP_printk("dev %d:%d ino %#lx %s %s address %#lx vm_start "
> +	TP_printk("dev %d:%d ino %#llx %s %s address %#lx vm_start "
>  			"%#lx vm_end %#lx pgoff %#lx max_pgoff %#lx %s",
>  		MAJOR(__entry->dev),
>  		MINOR(__entry->dev),
> @@ -66,7 +66,7 @@ DECLARE_EVENT_CLASS(dax_pmd_load_hole_class,
>  		void *radix_entry),
>  	TP_ARGS(inode, vmf, zero_folio, radix_entry),
>  	TP_STRUCT__entry(
> -		__field(unsigned long, ino)
> +		__field(u64, ino)
>  		__field(vm_flags_t, vm_flags)
>  		__field(unsigned long, address)
>  		__field(struct folio *, zero_folio)
> @@ -81,7 +81,7 @@ DECLARE_EVENT_CLASS(dax_pmd_load_hole_class,
>  		__entry->zero_folio = zero_folio;
>  		__entry->radix_entry = radix_entry;
>  	),
> -	TP_printk("dev %d:%d ino %#lx %s address %#lx zero_folio %p "
> +	TP_printk("dev %d:%d ino %#llx %s address %#lx zero_folio %p "
>  			"radix_entry %#lx",
>  		MAJOR(__entry->dev),
>  		MINOR(__entry->dev),
> @@ -106,7 +106,7 @@ DECLARE_EVENT_CLASS(dax_pte_fault_class,
>  	TP_PROTO(struct inode *inode, struct vm_fault *vmf, int result),
>  	TP_ARGS(inode, vmf, result),
>  	TP_STRUCT__entry(
> -		__field(unsigned long, ino)
> +		__field(u64, ino)
>  		__field(vm_flags_t, vm_flags)
>  		__field(unsigned long, address)
>  		__field(pgoff_t, pgoff)
> @@ -123,7 +123,7 @@ DECLARE_EVENT_CLASS(dax_pte_fault_class,
>  		__entry->pgoff = vmf->pgoff;
>  		__entry->result = result;
>  	),
> -	TP_printk("dev %d:%d ino %#lx %s %s address %#lx pgoff %#lx %s",
> +	TP_printk("dev %d:%d ino %#llx %s %s address %#lx pgoff %#lx %s",
>  		MAJOR(__entry->dev),
>  		MINOR(__entry->dev),
>  		__entry->ino,
> @@ -150,7 +150,7 @@ DECLARE_EVENT_CLASS(dax_writeback_range_class,
>  	TP_PROTO(struct inode *inode, pgoff_t start_index, pgoff_t end_index),
>  	TP_ARGS(inode, start_index, end_index),
>  	TP_STRUCT__entry(
> -		__field(unsigned long, ino)
> +		__field(u64, ino)
>  		__field(pgoff_t, start_index)
>  		__field(pgoff_t, end_index)
>  		__field(dev_t, dev)
> @@ -161,7 +161,7 @@ DECLARE_EVENT_CLASS(dax_writeback_range_class,
>  		__entry->start_index = start_index;
>  		__entry->end_index = end_index;
>  	),
> -	TP_printk("dev %d:%d ino %#lx pgoff %#lx-%#lx",
> +	TP_printk("dev %d:%d ino %#llx pgoff %#lx-%#lx",
>  		MAJOR(__entry->dev),
>  		MINOR(__entry->dev),
>  		__entry->ino,
> @@ -182,7 +182,7 @@ TRACE_EVENT(dax_writeback_one,
>  	TP_PROTO(struct inode *inode, pgoff_t pgoff, pgoff_t pglen),
>  	TP_ARGS(inode, pgoff, pglen),
>  	TP_STRUCT__entry(
> -		__field(unsigned long, ino)
> +		__field(u64, ino)
>  		__field(pgoff_t, pgoff)
>  		__field(pgoff_t, pglen)
>  		__field(dev_t, dev)
> @@ -193,7 +193,7 @@ TRACE_EVENT(dax_writeback_one,
>  		__entry->pgoff = pgoff;
>  		__entry->pglen = pglen;
>  	),
> -	TP_printk("dev %d:%d ino %#lx pgoff %#lx pglen %#lx",
> +	TP_printk("dev %d:%d ino %#llx pgoff %#lx pglen %#lx",
>  		MAJOR(__entry->dev),
>  		MINOR(__entry->dev),
>  		__entry->ino,
> diff --git a/include/trace/events/fsverity.h b/include/trace/events/fsverity.h
> index a8c52f21cbd5eb010c7e7b2fdb8f9de49c8ea326..4477c17e05748360965c4e1840590efe96d6335e 100644
> --- a/include/trace/events/fsverity.h
> +++ b/include/trace/events/fsverity.h
> @@ -16,7 +16,7 @@ TRACE_EVENT(fsverity_enable,
>  		 const struct merkle_tree_params *params),
>  	TP_ARGS(inode, params),
>  	TP_STRUCT__entry(
> -		__field(ino_t, ino)
> +		__field(u64, ino)

Do you need to convert all these ino_t's?

>  		__field(u64, data_size)
>  		__field(u64, tree_size)
>  		__field(unsigned int, merkle_block)
> @@ -29,8 +29,8 @@ TRACE_EVENT(fsverity_enable,
>  		__entry->merkle_block = params->block_size;
>  		__entry->num_levels = params->num_levels;
>  	),
> -	TP_printk("ino %lu data_size %llu tree_size %llu merkle_block %u levels %u",
> -		(unsigned long) __entry->ino,
> +	TP_printk("ino %llu data_size %llu tree_size %llu merkle_block %u levels %u",
> +		__entry->ino,
>  		__entry->data_size,
>  		__entry->tree_size,
>  		__entry->merkle_block,
> @@ -42,7 +42,7 @@ TRACE_EVENT(fsverity_tree_done,
>  		 const struct merkle_tree_params *params),
>  	TP_ARGS(inode, vi, params),
>  	TP_STRUCT__entry(
> -		__field(ino_t, ino)
> +		__field(u64, ino)
>  		__field(u64, data_size)
>  		__field(u64, tree_size)
>  		__field(unsigned int, merkle_block)
> @@ -59,8 +59,8 @@ TRACE_EVENT(fsverity_tree_done,
>  		memcpy(__get_dynamic_array(root_hash), vi->root_hash, __get_dynamic_array_len(root_hash));
>  		memcpy(__get_dynamic_array(file_digest), vi->file_digest, __get_dynamic_array_len(file_digest));
>  	),
> -	TP_printk("ino %lu data_size %llu tree_size %lld merkle_block %u levels %u root_hash %s digest %s",
> -		(unsigned long) __entry->ino,
> +	TP_printk("ino %llu data_size %llu tree_size %lld merkle_block %u levels %u root_hash %s digest %s",
> +		__entry->ino,
>  		__entry->data_size,
>  		__entry->tree_size,
>  		__entry->merkle_block,
> @@ -75,7 +75,7 @@ TRACE_EVENT(fsverity_verify_data_block,
>  		 u64 data_pos),
>  	TP_ARGS(inode, params, data_pos),
>  	TP_STRUCT__entry(
> -		__field(ino_t, ino)
> +		__field(u64, ino)
>  		__field(u64, data_pos)
>  		__field(unsigned int, merkle_block)
>  	),
> @@ -84,8 +84,8 @@ TRACE_EVENT(fsverity_verify_data_block,
>  		__entry->data_pos = data_pos;
>  		__entry->merkle_block = params->block_size;
>  	),
> -	TP_printk("ino %lu data_pos %llu merkle_block %u",
> -		(unsigned long) __entry->ino,
> +	TP_printk("ino %llu data_pos %llu merkle_block %u",
> +		__entry->ino,
>  		__entry->data_pos,
>  		__entry->merkle_block)
>  );
> @@ -96,7 +96,7 @@ TRACE_EVENT(fsverity_merkle_hit,
>  		 unsigned int hidx),
>  	TP_ARGS(inode, data_pos, hblock_idx, level, hidx),
>  	TP_STRUCT__entry(
> -		__field(ino_t, ino)
> +		__field(u64, ino)
>  		__field(u64, data_pos)

Heh, this actually removed a hole, but again, why convert ino_t?

Anyway, I stopped here. But you get the idea.

-- Steve

>  		__field(unsigned long, hblock_idx)
>  		__field(unsigned int, level)

^ permalink raw reply

* Re: [PATCH 03/61] trace: update VFS-layer trace events for u64 i_ino
From: Jeff Layton @ 2026-02-26 17:53 UTC (permalink / raw)
  To: Jan Kara
  Cc: Alexander Viro, Christian Brauner, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <6exhq5gjvef5obfsqwkxfcpl2sjqmlv7klrzolodzpcjolgrmd@ds42ulhod7pw>

On Thu, 2026-02-26 at 18:11 +0100, Jan Kara wrote:
> On Thu 26-02-26 10:55:05, Jeff Layton wrote:
> > Update trace event definitions in VFS-layer trace headers to use u64
> > instead of ino_t/unsigned long for inode number fields, and change
> > format strings from %lu/%lx to %llu/%llx to match.
> > 
> > This is needed because i_ino is now u64. Changing trace event field
> > types changes the binary trace format, but the self-describing format
> > metadata handles this transparently for modern trace-cmd and perf.
> > 
> > Files updated:
> >   - cachefiles.h, filelock.h, filemap.h, fs_dax.h, fsverity.h,
> >     hugetlbfs.h, netfs.h, readahead.h, timestamp.h, writeback.h
> > 
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> 
> ...
> 
> > diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
> > index 4d3d8c8f3a1bc3e5ef10fc96e3c6dbbd0cf00c98..cc7651749eb3ce1123cb3ea9496f0803a0f4c1a0 100644
> > --- a/include/trace/events/writeback.h
> > +++ b/include/trace/events/writeback.h
> > @@ -67,7 +67,7 @@ DECLARE_EVENT_CLASS(writeback_folio_template,
> >  
> >  	TP_STRUCT__entry (
> >  		__array(char, name, 32)
> > -		__field(ino_t, ino)
> > +		__field(u64, ino)
> >  		__field(pgoff_t, index)
> >  	),
> >  
> > @@ -79,9 +79,9 @@ DECLARE_EVENT_CLASS(writeback_folio_template,
> >  		__entry->index = folio->index;
> >  	),
> >  
> > -	TP_printk("bdi %s: ino=%lu index=%lu",
> > +	TP_printk("bdi %s: ino=%llu index=%lu",
> >  		__entry->name,
> > -		(unsigned long)__entry->ino,
> > +		(unsigned long long)__entry->ino,
> 
> No need for explicit typing to ULL?
>
> >  		__entry->index
> >  	)
> >  );
> > @@ -108,7 +108,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
> >  
> >  	TP_STRUCT__entry (
> >  		__array(char, name, 32)
> > -		__field(ino_t, ino)
> > +		__field(u64, ino)
> >  		__field(unsigned long, state)
> >  		__field(unsigned long, flags)
> >  	),
> > @@ -123,9 +123,9 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
> >  		__entry->flags		= flags;
> >  	),
> >  
> > -	TP_printk("bdi %s: ino=%lu state=%s flags=%s",
> > +	TP_printk("bdi %s: ino=%llu state=%s flags=%s",
> >  		__entry->name,
> > -		(unsigned long)__entry->ino,
> > +		(unsigned long long)__entry->ino,
> 
> And here as well? And many times below as well...
> 
> 								Honza

Good catch. I'll clean those up.

Thanks,
-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply

* Re: [PATCH 28/61] ecryptfs: update format strings for u64 i_ino
From: Tyler Hicks @ 2026-02-26 18:21 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Amir Goldstein, Christoph Hellwig, John Paul Adrian Glaubitz,
	Yangtao Li, Mikulas Patocka, David Woodhouse, Richard Weinberger,
	Dave Kleikamp, Konstantin Komarov, Mark Fasheh, Joel Becker,
	Joseph Qi, Mike Marshall, Martin Brandenburg, Miklos Szeredi,
	Anders Larsen, Zhihao Cheng, Damien Le Moal, Naohiro Aota,
	Johannes Thumshirn, John Johansen, Paul Moore, James Morris,
	Serge E. Hallyn, Mimi Zohar, Roberto Sassu, Dmitry Kasatkin,
	Eric Snowberg, Fan Wu, Stephen Smalley, Ondrej Mosnacek,
	Casey Schaufler, Alex Deucher, Christian König, David Airlie,
	Simona Vetter, Sumit Semwal, Eric Dumazet, Kuniyuki Iwashima,
	Paolo Abeni, Willem de Bruijn, David S. Miller, Jakub Kicinski,
	Simon Horman, Oleg Nesterov, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Namhyung Kim, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Ian Rogers, Adrian Hunter,
	James Clark, Darrick J. Wong, Martin Schiller, linux-fsdevel,
	linux-kernel, linux-trace-kernel, nvdimm, fsverity, linux-mm,
	netfs, linux-ext4, linux-f2fs-devel, linux-nfs, linux-cifs,
	samba-technical, linux-nilfs, v9fs, linux-afs, autofs, ceph-devel,
	codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3, ocfs2-devel,
	devel, linux-unionfs, apparmor, linux-security-module,
	linux-integrity, selinux, amd-gfx, dri-devel, linux-media,
	linaro-mm-sig, netdev, linux-perf-users, linux-fscrypt, linux-xfs,
	linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-28-ccceff366db9@kernel.org>

On 2026-02-26 10:55:30, Jeff Layton wrote:
> Update format strings and local variable types in ecryptfs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

Acked-by: Tyler Hicks <code@tyhicks.com>

Tyler

> ---
>  fs/ecryptfs/crypto.c | 6 +++---
>  fs/ecryptfs/file.c   | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
> index 3b59346d68c594fcd7e27bae87849d3e19eff56e..f25c9a49e251a591695a143f64d1a81c5211ec18 100644
> --- a/fs/ecryptfs/crypto.c
> +++ b/fs/ecryptfs/crypto.c
> @@ -1313,7 +1313,7 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
>  		rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode);
>  		if (rc) {
>  			printk(KERN_DEBUG "Valid eCryptfs headers not found in "
> -			       "file header region or xattr region, inode %lu\n",
> +			       "file header region or xattr region, inode %llu\n",
>  				ecryptfs_inode->i_ino);
>  			rc = -EINVAL;
>  			goto out;
> @@ -1323,7 +1323,7 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
>  						ECRYPTFS_DONT_VALIDATE_HEADER_SIZE);
>  		if (rc) {
>  			printk(KERN_DEBUG "Valid eCryptfs headers not found in "
> -			       "file xattr region either, inode %lu\n",
> +			       "file xattr region either, inode %llu\n",
>  				ecryptfs_inode->i_ino);
>  			rc = -EINVAL;
>  		}
> @@ -1335,7 +1335,7 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
>  			       "crypto metadata only in the extended attribute "
>  			       "region, but eCryptfs was mounted without "
>  			       "xattr support enabled. eCryptfs will not treat "
> -			       "this like an encrypted file, inode %lu\n",
> +			       "this like an encrypted file, inode %llu\n",
>  				ecryptfs_inode->i_ino);
>  			rc = -EINVAL;
>  		}
> diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c
> index 7929411837cf5b2e98e1d4288791d2e07c44a4eb..49b0fbe0428a2d202434ce4b5fd7d82d2a63cf58 100644
> --- a/fs/ecryptfs/file.c
> +++ b/fs/ecryptfs/file.c
> @@ -253,7 +253,7 @@ static int ecryptfs_open(struct inode *inode, struct file *file)
>  	if (rc)
>  		goto out_put;
>  	ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = "
> -			"[0x%.16lx] size: [0x%.16llx]\n", inode, inode->i_ino,
> +			"[0x%.16llx] size: [0x%.16llx]\n", inode, inode->i_ino,
>  			(unsigned long long)i_size_read(inode));
>  	goto out;
>  out_put:
> 
> -- 
> 2.53.0
> 

^ permalink raw reply

* Re:  [PATCH 33/61] hfs: update format strings for u64 i_ino
From: Viacheslav Dubeyko @ 2026-02-26 19:33 UTC (permalink / raw)
  To: david@kernel.org, namhyung@kernel.org, oleg@redhat.com,
	anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, jack@suse.cz,
	ebiggers@kernel.org, Ondrej Mosnacek, mark.rutland@arm.com,
	casey@schaufler-ca.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	asmadeus@codewreck.org, jth@kernel.org, shaggy@kernel.org,
	serge@hallyn.com, jaharkes@cs.cmu.edu, jlayton@kernel.org,
	trondmy@kernel.org, jolsa@kernel.org, ericvh@kernel.org,
	simona@ffwll.ch, willemb@google.com, aivazian.tigran@gmail.com,
	hubcap@omnibond.com, muchun.song@linux.dev, sfrench@samba.org,
	neil@brown.name, jmorris@namei.org, jlbec@evilplan.org,
	chuck.lever@oracle.com, ronniesahlberg@gmail.com,
	lucho@ionkov.net, dan.j.williams@intel.com, raven@themaw.net,
	Alex Markuze, mhiramat@kernel.org, alexander.deucher@amd.com,
	mathieu.desnoyers@efficios.com, horms@kernel.org, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, peterz@infradead.org, christian.koenig@amd.com,
	pc@manguebit.org, martin@omnibond.com, naohiro.aota@wdc.com,
	frank.li@vivo.com, dsterba@suse.com, zohar@linux.ibm.com,
	code@tyhicks.com, dwmw2@infradead.org, kuba@kernel.org,
	kuniyu@google.com, nico@fluxnic.net, jack@suse.com,
	dlemoal@kernel.org, viro@zeniv.linux.org.uk,
	stephen.smalley.work@gmail.com, salah.triki@gmail.com,
	David Howells, paul@paul-moore.com, luisbg@kernel.org,
	irogers@google.com, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, coda@cs.cmu.edu, Ingo Molnar,
	alex.aring@gmail.com, airlied@gmail.com, chengzhihao1@huawei.com,
	Paolo Abeni, marc.dionne@auristor.com,
	almaz.alexandrovich@paragon-software.com, davem@davemloft.net,
	hch@infradead.org
  Cc: ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-ext4@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	fsverity@lists.linux.dev, ntfs3@lists.linux.dev,
	ocfs2-devel@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-integrity@vger.kernel.org,
	samba-technical@lists.samba.org, linux-nilfs@vger.kernel.org,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-trace-kernel@vger.kernel.org, v9fs@lists.linux.dev,
	linux-xfs@vger.kernel.org, linux-x25@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-afs@lists.infradead.org, linux-fscrypt@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <20260226-iino-u64-v1-33-ccceff366db9@kernel.org>

On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> Update format strings and local variable types in hfs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/hfs/catalog.c | 2 +-
>  fs/hfs/extent.c  | 4 ++--
>  fs/hfs/inode.c   | 4 ++--
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/hfs/catalog.c b/fs/hfs/catalog.c
> index b80ba40e38776123759df4b85c7f65daa19c6436..7f5339ee57c15aae2d5d00474133a985be3af6ca 100644
> --- a/fs/hfs/catalog.c
> +++ b/fs/hfs/catalog.c
> @@ -417,7 +417,7 @@ int hfs_cat_move(u32 cnid, struct inode *src_dir, const struct qstr *src_name,
>  	int entry_size, type;
>  	int err;
>  
> -	hfs_dbg("cnid %u - (ino %lu, name %s) - (ino %lu, name %s)\n",
> +	hfs_dbg("cnid %u - (ino %llu, name %s) - (ino %llu, name %s)\n",
>  		cnid, src_dir->i_ino, src_name->name,
>  		dst_dir->i_ino, dst_name->name);
>  	sb = src_dir->i_sb;
> diff --git a/fs/hfs/extent.c b/fs/hfs/extent.c
> index a097908b269d0ad1575847dd01d6d4a4538262bf..f066a99a863bc739948aac921bc906874c6009b2 100644
> --- a/fs/hfs/extent.c
> +++ b/fs/hfs/extent.c
> @@ -411,7 +411,7 @@ int hfs_extend_file(struct inode *inode)
>  		goto out;
>  	}
>  
> -	hfs_dbg("ino %lu, start %u, len %u\n", inode->i_ino, start, len);
> +	hfs_dbg("ino %llu, start %u, len %u\n", inode->i_ino, start, len);
>  	if (HFS_I(inode)->alloc_blocks == HFS_I(inode)->first_blocks) {
>  		if (!HFS_I(inode)->first_blocks) {
>  			hfs_dbg("first_extent: start %u, len %u\n",
> @@ -482,7 +482,7 @@ void hfs_file_truncate(struct inode *inode)
>  	u32 size;
>  	int res;
>  
> -	hfs_dbg("ino %lu, phys_size %llu -> i_size %llu\n",
> +	hfs_dbg("ino %llu, phys_size %llu -> i_size %llu\n",
>  		inode->i_ino, (long long)HFS_I(inode)->phys_size,
>  		inode->i_size);
>  	if (inode->i_size > HFS_I(inode)->phys_size) {
> diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
> index 878535db64d679995cd1f5c215f56c5258c3c720..95f0333a608b0fb57239cf5eec7d9489a25efb3a 100644
> --- a/fs/hfs/inode.c
> +++ b/fs/hfs/inode.c
> @@ -270,7 +270,7 @@ void hfs_delete_inode(struct inode *inode)
>  {
>  	struct super_block *sb = inode->i_sb;
>  
> -	hfs_dbg("ino %lu\n", inode->i_ino);
> +	hfs_dbg("ino %llu\n", inode->i_ino);
>  	if (S_ISDIR(inode->i_mode)) {
>  		atomic64_dec(&HFS_SB(sb)->folder_count);
>  		if (HFS_I(inode)->cat_key.ParID == cpu_to_be32(HFS_ROOT_CNID))
> @@ -455,7 +455,7 @@ int hfs_write_inode(struct inode *inode, struct writeback_control *wbc)
>  	hfs_cat_rec rec;
>  	int res;
>  
> -	hfs_dbg("ino %lu\n", inode->i_ino);
> +	hfs_dbg("ino %llu\n", inode->i_ino);
>  	res = hfs_ext_write_extent(inode);
>  	if (res)
>  		return res;

Looks good.

Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>

Thanks,
Slava.

^ permalink raw reply

* Re:  [PATCH 34/61] hfsplus: update format strings for u64 i_ino
From: Viacheslav Dubeyko @ 2026-02-26 19:35 UTC (permalink / raw)
  To: david@kernel.org, namhyung@kernel.org, oleg@redhat.com,
	anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, jack@suse.cz,
	ebiggers@kernel.org, Ondrej Mosnacek, mark.rutland@arm.com,
	casey@schaufler-ca.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	asmadeus@codewreck.org, jth@kernel.org, shaggy@kernel.org,
	serge@hallyn.com, jaharkes@cs.cmu.edu, jlayton@kernel.org,
	trondmy@kernel.org, jolsa@kernel.org, ericvh@kernel.org,
	simona@ffwll.ch, willemb@google.com, aivazian.tigran@gmail.com,
	hubcap@omnibond.com, muchun.song@linux.dev, sfrench@samba.org,
	neil@brown.name, jmorris@namei.org, jlbec@evilplan.org,
	chuck.lever@oracle.com, ronniesahlberg@gmail.com,
	lucho@ionkov.net, dan.j.williams@intel.com, raven@themaw.net,
	Alex Markuze, mhiramat@kernel.org, alexander.deucher@amd.com,
	mathieu.desnoyers@efficios.com, horms@kernel.org, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, peterz@infradead.org, christian.koenig@amd.com,
	pc@manguebit.org, martin@omnibond.com, naohiro.aota@wdc.com,
	frank.li@vivo.com, dsterba@suse.com, zohar@linux.ibm.com,
	code@tyhicks.com, dwmw2@infradead.org, kuba@kernel.org,
	kuniyu@google.com, nico@fluxnic.net, jack@suse.com,
	dlemoal@kernel.org, viro@zeniv.linux.org.uk,
	stephen.smalley.work@gmail.com, salah.triki@gmail.com,
	David Howells, paul@paul-moore.com, luisbg@kernel.org,
	irogers@google.com, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, coda@cs.cmu.edu, Ingo Molnar,
	alex.aring@gmail.com, airlied@gmail.com, chengzhihao1@huawei.com,
	Paolo Abeni, marc.dionne@auristor.com,
	almaz.alexandrovich@paragon-software.com, davem@davemloft.net,
	hch@infradead.org
  Cc: ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-ext4@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	fsverity@lists.linux.dev, ntfs3@lists.linux.dev,
	ocfs2-devel@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-integrity@vger.kernel.org,
	samba-technical@lists.samba.org, linux-nilfs@vger.kernel.org,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-trace-kernel@vger.kernel.org, v9fs@lists.linux.dev,
	linux-xfs@vger.kernel.org, linux-x25@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-afs@lists.infradead.org, linux-fscrypt@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <20260226-iino-u64-v1-34-ccceff366db9@kernel.org>

On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> Update format strings and local variable types in hfsplus for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/hfsplus/attributes.c | 10 +++++-----
>  fs/hfsplus/catalog.c    |  2 +-
>  fs/hfsplus/dir.c        |  6 +++---
>  fs/hfsplus/extents.c    |  6 +++---
>  fs/hfsplus/inode.c      |  8 ++++----
>  fs/hfsplus/super.c      |  6 +++---
>  fs/hfsplus/xattr.c      | 10 +++++-----
>  7 files changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/fs/hfsplus/attributes.c b/fs/hfsplus/attributes.c
> index 4b79cd606276e31c20fa18ef3a099596f50e8a0f..e3d8fe1e7e75d9895c4ae30810a334412b4c105a 100644
> --- a/fs/hfsplus/attributes.c
> +++ b/fs/hfsplus/attributes.c
> @@ -203,7 +203,7 @@ int hfsplus_create_attr_nolock(struct inode *inode, const char *name,
>  	int entry_size;
>  	int err;
>  
> -	hfs_dbg("name %s, ino %ld\n",
> +	hfs_dbg("name %s, ino %lld\n",
>  		name ? name : NULL, inode->i_ino);
>  
>  	if (name) {
> @@ -255,7 +255,7 @@ int hfsplus_create_attr(struct inode *inode,
>  	hfsplus_attr_entry *entry_ptr;
>  	int err;
>  
> -	hfs_dbg("name %s, ino %ld\n",
> +	hfs_dbg("name %s, ino %lld\n",
>  		name ? name : NULL, inode->i_ino);
>  
>  	if (!HFSPLUS_SB(sb)->attr_tree) {
> @@ -337,7 +337,7 @@ int hfsplus_delete_attr_nolock(struct inode *inode, const char *name,
>  	struct super_block *sb = inode->i_sb;
>  	int err;
>  
> -	hfs_dbg("name %s, ino %ld\n",
> +	hfs_dbg("name %s, ino %lld\n",
>  		name ? name : NULL, inode->i_ino);
>  
>  	if (name) {
> @@ -367,7 +367,7 @@ int hfsplus_delete_attr(struct inode *inode, const char *name)
>  	struct super_block *sb = inode->i_sb;
>  	struct hfs_find_data fd;
>  
> -	hfs_dbg("name %s, ino %ld\n",
> +	hfs_dbg("name %s, ino %lld\n",
>  		name ? name : NULL, inode->i_ino);
>  
>  	if (!HFSPLUS_SB(sb)->attr_tree) {
> @@ -436,7 +436,7 @@ int hfsplus_replace_attr(struct inode *inode,
>  	hfsplus_attr_entry *entry_ptr;
>  	int err = 0;
>  
> -	hfs_dbg("name %s, ino %ld\n",
> +	hfs_dbg("name %s, ino %lld\n",
>  		name ? name : NULL, inode->i_ino);
>  
>  	if (!HFSPLUS_SB(sb)->attr_tree) {
> diff --git a/fs/hfsplus/catalog.c b/fs/hfsplus/catalog.c
> index 02c1eee4a4b86059ceaab7a7c68ab65adba6fa26..0e961e99b9856ab7d95da5d070b4fbce1e67ebde 100644
> --- a/fs/hfsplus/catalog.c
> +++ b/fs/hfsplus/catalog.c
> @@ -441,7 +441,7 @@ int hfsplus_rename_cat(u32 cnid,
>  	int entry_size, type;
>  	int err;
>  
> -	hfs_dbg("cnid %u - ino %lu, name %s - ino %lu, name %s\n",
> +	hfs_dbg("cnid %u - ino %llu, name %s - ino %llu, name %s\n",
>  		cnid, src_dir->i_ino, src_name->name,
>  		dst_dir->i_ino, dst_name->name);
>  	err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &src_fd);
> diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
> index d559bf8625f853d50fd316d157cf8afe22069565..054f6da46033404bbbcf299beb5d8765495c0de3 100644
> --- a/fs/hfsplus/dir.c
> +++ b/fs/hfsplus/dir.c
> @@ -313,7 +313,7 @@ static int hfsplus_link(struct dentry *src_dentry, struct inode *dst_dir,
>  	if (!S_ISREG(inode->i_mode))
>  		return -EPERM;
>  
> -	hfs_dbg("src_dir->i_ino %lu, dst_dir->i_ino %lu, inode->i_ino %lu\n",
> +	hfs_dbg("src_dir->i_ino %llu, dst_dir->i_ino %llu, inode->i_ino %llu\n",
>  		src_dir->i_ino, dst_dir->i_ino, inode->i_ino);
>  
>  	mutex_lock(&sbi->vh_mutex);
> @@ -385,7 +385,7 @@ static int hfsplus_unlink(struct inode *dir, struct dentry *dentry)
>  	if (HFSPLUS_IS_RSRC(inode))
>  		return -EPERM;
>  
> -	hfs_dbg("dir->i_ino %lu, inode->i_ino %lu\n",
> +	hfs_dbg("dir->i_ino %llu, inode->i_ino %llu\n",
>  		dir->i_ino, inode->i_ino);
>  
>  	mutex_lock(&sbi->vh_mutex);
> @@ -393,7 +393,7 @@ static int hfsplus_unlink(struct inode *dir, struct dentry *dentry)
>  	if (inode->i_ino == cnid &&
>  	    atomic_read(&HFSPLUS_I(inode)->opencnt)) {
>  		str.name = name;
> -		str.len = sprintf(name, "temp%lu", inode->i_ino);
> +		str.len = sprintf(name, "temp%llu", inode->i_ino);
>  		res = hfsplus_rename_cat(inode->i_ino,
>  					 dir, &dentry->d_name,
>  					 sbi->hidden_dir, &str);
> diff --git a/fs/hfsplus/extents.c b/fs/hfsplus/extents.c
> index 8e886514d27f1e5d4d94be75142f197669e62234..474fde1a1653be6cf74b26e757c6d8a6f8d2906a 100644
> --- a/fs/hfsplus/extents.c
> +++ b/fs/hfsplus/extents.c
> @@ -275,7 +275,7 @@ int hfsplus_get_block(struct inode *inode, sector_t iblock,
>  	mutex_unlock(&hip->extents_lock);
>  
>  done:
> -	hfs_dbg("ino %lu, iblock %llu - dblock %u\n",
> +	hfs_dbg("ino %llu, iblock %llu - dblock %u\n",
>  		inode->i_ino, (long long)iblock, dblock);
>  
>  	mask = (1 << sbi->fs_shift) - 1;
> @@ -476,7 +476,7 @@ int hfsplus_file_extend(struct inode *inode, bool zeroout)
>  			goto out;
>  	}
>  
> -	hfs_dbg("ino %lu, start %u, len %u\n", inode->i_ino, start, len);
> +	hfs_dbg("ino %llu, start %u, len %u\n", inode->i_ino, start, len);
>  
>  	if (hip->alloc_blocks <= hip->first_blocks) {
>  		if (!hip->first_blocks) {
> @@ -545,7 +545,7 @@ void hfsplus_file_truncate(struct inode *inode)
>  	u32 alloc_cnt, blk_cnt, start;
>  	int res;
>  
> -	hfs_dbg("ino %lu, phys_size %llu -> i_size %llu\n",
> +	hfs_dbg("ino %llu, phys_size %llu -> i_size %llu\n",
>  		inode->i_ino, (long long)hip->phys_size, inode->i_size);
>  
>  	if (inode->i_size > hip->phys_size) {
> diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c
> index 922ff41df042a83d47364f2d941c45dabda29afb..02be32dc6833dfdd767c407ec0263485d1a2c3c6 100644
> --- a/fs/hfsplus/inode.c
> +++ b/fs/hfsplus/inode.c
> @@ -230,7 +230,7 @@ static int hfsplus_get_perms(struct inode *inode,
>  		inode->i_flags &= ~S_APPEND;
>  	return 0;
>  bad_type:
> -	pr_err("invalid file type 0%04o for inode %lu\n", mode, inode->i_ino);
> +	pr_err("invalid file type 0%04o for inode %llu\n", mode, inode->i_ino);
>  	return -EIO;
>  }
>  
> @@ -328,7 +328,7 @@ int hfsplus_file_fsync(struct file *file, loff_t start, loff_t end,
>  	struct hfsplus_vh *vhdr = sbi->s_vhdr;
>  	int error = 0, error2;
>  
> -	hfs_dbg("inode->i_ino %lu, start %llu, end %llu\n",
> +	hfs_dbg("inode->i_ino %llu, start %llu, end %llu\n",
>  		inode->i_ino, start, end);
>  
>  	error = file_write_and_wait_range(file, start, end);
> @@ -639,7 +639,7 @@ int hfsplus_cat_write_inode(struct inode *inode)
>  	hfsplus_cat_entry entry;
>  	int res = 0;
>  
> -	hfs_dbg("inode->i_ino %lu\n", inode->i_ino);
> +	hfs_dbg("inode->i_ino %llu\n", inode->i_ino);
>  
>  	if (HFSPLUS_IS_RSRC(inode))
>  		main_inode = HFSPLUS_I(inode)->rsrc_inode;
> @@ -716,7 +716,7 @@ int hfsplus_cat_write_inode(struct inode *inode)
>  	if (!res) {
>  		res = hfs_btree_write(tree);
>  		if (res) {
> -			pr_err("b-tree write err: %d, ino %lu\n",
> +			pr_err("b-tree write err: %d, ino %llu\n",
>  			       res, inode->i_ino);
>  		}
>  	}
> diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
> index 7229a8ae89f9469109b1c3a317ee9b7705a83f8b..b3917249c206c3a25fe98b39a5eb2168b7404dc2 100644
> --- a/fs/hfsplus/super.c
> +++ b/fs/hfsplus/super.c
> @@ -156,7 +156,7 @@ static int hfsplus_system_write_inode(struct inode *inode)
>  		int err = hfs_btree_write(tree);
>  
>  		if (err) {
> -			pr_err("b-tree write err: %d, ino %lu\n",
> +			pr_err("b-tree write err: %d, ino %llu\n",
>  			       err, inode->i_ino);
>  			return err;
>  		}
> @@ -169,7 +169,7 @@ static int hfsplus_write_inode(struct inode *inode,
>  {
>  	int err;
>  
> -	hfs_dbg("ino %lu\n", inode->i_ino);
> +	hfs_dbg("ino %llu\n", inode->i_ino);
>  
>  	err = hfsplus_ext_write_extent(inode);
>  	if (err)
> @@ -184,7 +184,7 @@ static int hfsplus_write_inode(struct inode *inode,
>  
>  static void hfsplus_evict_inode(struct inode *inode)
>  {
> -	hfs_dbg("ino %lu\n", inode->i_ino);
> +	hfs_dbg("ino %llu\n", inode->i_ino);
>  	truncate_inode_pages_final(&inode->i_data);
>  	clear_inode(inode);
>  	if (HFSPLUS_IS_RSRC(inode)) {
> diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
> index 9904944cbd54e3d326591fa65a5ed678f38ca583..c70bb6f494b22b1e3f74e18a9ef378e0c87f8194 100644
> --- a/fs/hfsplus/xattr.c
> +++ b/fs/hfsplus/xattr.c
> @@ -277,7 +277,7 @@ int __hfsplus_setxattr(struct inode *inode, const char *name,
>  	u16 folder_finderinfo_len = sizeof(DInfo) + sizeof(DXInfo);
>  	u16 file_finderinfo_len = sizeof(FInfo) + sizeof(FXInfo);
>  
> -	hfs_dbg("ino %lu, name %s, value %p, size %zu\n",
> +	hfs_dbg("ino %llu, name %s, value %p, size %zu\n",
>  		inode->i_ino, name ? name : NULL,
>  		value, size);
>  
> @@ -447,7 +447,7 @@ int hfsplus_setxattr(struct inode *inode, const char *name,
>  		NLS_MAX_CHARSET_SIZE * HFSPLUS_ATTR_MAX_STRLEN + 1;
>  	int res;
>  
> -	hfs_dbg("ino %lu, name %s, prefix %s, prefixlen %zu, "
> +	hfs_dbg("ino %llu, name %s, prefix %s, prefixlen %zu, "
>  		"value %p, size %zu\n",
>  		inode->i_ino, name ? name : NULL,
>  		prefix ? prefix : NULL, prefixlen,
> @@ -607,7 +607,7 @@ ssize_t hfsplus_getxattr(struct inode *inode, const char *name,
>  	int res;
>  	char *xattr_name;
>  
> -	hfs_dbg("ino %lu, name %s, prefix %s\n",
> +	hfs_dbg("ino %llu, name %s, prefix %s\n",
>  		inode->i_ino, name ? name : NULL,
>  		prefix ? prefix : NULL);
>  
> @@ -717,7 +717,7 @@ ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size)
>  	size_t strbuf_size;
>  	int xattr_name_len;
>  
> -	hfs_dbg("ino %lu\n", inode->i_ino);
> +	hfs_dbg("ino %llu\n", inode->i_ino);
>  
>  	if (!is_xattr_operation_supported(inode))
>  		return -EOPNOTSUPP;
> @@ -819,7 +819,7 @@ static int hfsplus_removexattr(struct inode *inode, const char *name)
>  	int is_xattr_acl_deleted;
>  	int is_all_xattrs_deleted;
>  
> -	hfs_dbg("ino %lu, name %s\n",
> +	hfs_dbg("ino %llu, name %s\n",
>  		inode->i_ino, name ? name : NULL);
>  
>  	if (!HFSPLUS_SB(inode->i_sb)->attr_tree)

Looks good.

Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>

Thanks,
Slava.

^ permalink raw reply

* Re:  [PATCH 25/61] ceph: update format strings for u64 i_ino
From: Viacheslav Dubeyko @ 2026-02-26 19:37 UTC (permalink / raw)
  To: david@kernel.org, namhyung@kernel.org, oleg@redhat.com,
	anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, jack@suse.cz,
	ebiggers@kernel.org, Ondrej Mosnacek, mark.rutland@arm.com,
	casey@schaufler-ca.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	asmadeus@codewreck.org, jth@kernel.org, shaggy@kernel.org,
	serge@hallyn.com, jaharkes@cs.cmu.edu, jlayton@kernel.org,
	trondmy@kernel.org, jolsa@kernel.org, ericvh@kernel.org,
	simona@ffwll.ch, willemb@google.com, aivazian.tigran@gmail.com,
	hubcap@omnibond.com, muchun.song@linux.dev, sfrench@samba.org,
	neil@brown.name, jmorris@namei.org, jlbec@evilplan.org,
	chuck.lever@oracle.com, ronniesahlberg@gmail.com,
	lucho@ionkov.net, dan.j.williams@intel.com, raven@themaw.net,
	Alex Markuze, mhiramat@kernel.org, alexander.deucher@amd.com,
	mathieu.desnoyers@efficios.com, horms@kernel.org, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, peterz@infradead.org, christian.koenig@amd.com,
	pc@manguebit.org, martin@omnibond.com, naohiro.aota@wdc.com,
	frank.li@vivo.com, dsterba@suse.com, zohar@linux.ibm.com,
	code@tyhicks.com, dwmw2@infradead.org, kuba@kernel.org,
	kuniyu@google.com, nico@fluxnic.net, jack@suse.com,
	dlemoal@kernel.org, viro@zeniv.linux.org.uk,
	stephen.smalley.work@gmail.com, salah.triki@gmail.com,
	David Howells, paul@paul-moore.com, luisbg@kernel.org,
	irogers@google.com, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, coda@cs.cmu.edu, Ingo Molnar,
	alex.aring@gmail.com, airlied@gmail.com, chengzhihao1@huawei.com,
	Paolo Abeni, marc.dionne@auristor.com,
	almaz.alexandrovich@paragon-software.com, davem@davemloft.net,
	hch@infradead.org
  Cc: ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-ext4@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	fsverity@lists.linux.dev, ntfs3@lists.linux.dev,
	ocfs2-devel@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-integrity@vger.kernel.org,
	samba-technical@lists.samba.org, linux-nilfs@vger.kernel.org,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-trace-kernel@vger.kernel.org, v9fs@lists.linux.dev,
	linux-xfs@vger.kernel.org, linux-x25@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-afs@lists.infradead.org, linux-fscrypt@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <20260226-iino-u64-v1-25-ccceff366db9@kernel.org>

On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> Update format strings and local variable types in ceph for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/ceph/crypto.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ceph/crypto.c b/fs/ceph/crypto.c
> index f3de43ccb470ddbd7945426d79f9024ae615c127..3c8a21a572d8230b558f20bb02721184cae35ee6 100644
> --- a/fs/ceph/crypto.c
> +++ b/fs/ceph/crypto.c
> @@ -272,7 +272,7 @@ int ceph_encode_encrypted_dname(struct inode *parent, char *buf, int elen)
>  	/* To understand the 240 limit, see CEPH_NOHASH_NAME_MAX comments */
>  	WARN_ON(elen > 240);
>  	if (dir != parent) // leading _ is already there; append _<inum>
> -		elen += 1 + sprintf(p + elen, "_%ld", dir->i_ino);
> +		elen += 1 + sprintf(p + elen, "_%lld", dir->i_ino);
>  
>  out:
>  	kfree(cryptbuf);
> @@ -377,7 +377,7 @@ int ceph_fname_to_usr(const struct ceph_fname *fname, struct fscrypt_str *tname,
>  	if (!ret && (dir != fname->dir)) {
>  		char tmp_buf[BASE64_CHARS(NAME_MAX)];
>  
> -		name_len = snprintf(tmp_buf, sizeof(tmp_buf), "_%.*s_%ld",
> +		name_len = snprintf(tmp_buf, sizeof(tmp_buf), "_%.*s_%lld",
>  				    oname->len, oname->name, dir->i_ino);
>  		memcpy(oname->name, tmp_buf, name_len);
>  		oname->len = name_len;

Looks good.

Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>

Thanks,
Slava.

^ permalink raw reply

* Re:  [PATCH 17/61] nilfs2: update for u64 i_ino
From: Viacheslav Dubeyko @ 2026-02-26 19:46 UTC (permalink / raw)
  To: david@kernel.org, namhyung@kernel.org, oleg@redhat.com,
	anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, jack@suse.cz,
	ebiggers@kernel.org, Ondrej Mosnacek, mark.rutland@arm.com,
	casey@schaufler-ca.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	asmadeus@codewreck.org, jth@kernel.org, shaggy@kernel.org,
	serge@hallyn.com, jaharkes@cs.cmu.edu, jlayton@kernel.org,
	trondmy@kernel.org, jolsa@kernel.org, ericvh@kernel.org,
	simona@ffwll.ch, willemb@google.com, aivazian.tigran@gmail.com,
	hubcap@omnibond.com, muchun.song@linux.dev, sfrench@samba.org,
	neil@brown.name, jmorris@namei.org, jlbec@evilplan.org,
	chuck.lever@oracle.com, ronniesahlberg@gmail.com,
	lucho@ionkov.net, dan.j.williams@intel.com, raven@themaw.net,
	Alex Markuze, mhiramat@kernel.org, alexander.deucher@amd.com,
	mathieu.desnoyers@efficios.com, horms@kernel.org, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, peterz@infradead.org, christian.koenig@amd.com,
	pc@manguebit.org, martin@omnibond.com, naohiro.aota@wdc.com,
	frank.li@vivo.com, dsterba@suse.com, zohar@linux.ibm.com,
	code@tyhicks.com, dwmw2@infradead.org, kuba@kernel.org,
	kuniyu@google.com, nico@fluxnic.net, jack@suse.com,
	dlemoal@kernel.org, viro@zeniv.linux.org.uk,
	stephen.smalley.work@gmail.com, salah.triki@gmail.com,
	David Howells, paul@paul-moore.com, luisbg@kernel.org,
	irogers@google.com, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, coda@cs.cmu.edu, Ingo Molnar,
	alex.aring@gmail.com, airlied@gmail.com, chengzhihao1@huawei.com,
	Paolo Abeni, marc.dionne@auristor.com,
	almaz.alexandrovich@paragon-software.com, davem@davemloft.net,
	hch@infradead.org
  Cc: ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-ext4@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	fsverity@lists.linux.dev, ntfs3@lists.linux.dev,
	ocfs2-devel@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-integrity@vger.kernel.org,
	samba-technical@lists.samba.org, linux-nilfs@vger.kernel.org,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-trace-kernel@vger.kernel.org, v9fs@lists.linux.dev,
	linux-xfs@vger.kernel.org, linux-x25@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-afs@lists.infradead.org, linux-fscrypt@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <20260226-iino-u64-v1-17-ccceff366db9@kernel.org>

On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> Update nilfs2 trace events and filesystem code for u64 i_ino:
> 
> - Change __field(ino_t, ...) to __field(u64, ...) in trace events
> - Update format strings from %lu to %llu
> - Cast to (unsigned long long) in TP_printk
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/nilfs2/alloc.c             | 10 +++++-----
>  fs/nilfs2/bmap.c              |  2 +-
>  fs/nilfs2/btnode.c            |  2 +-
>  fs/nilfs2/btree.c             | 12 ++++++------
>  fs/nilfs2/dir.c               | 12 ++++++------
>  fs/nilfs2/direct.c            |  4 ++--
>  fs/nilfs2/gcinode.c           |  2 +-
>  fs/nilfs2/inode.c             |  8 ++++----
>  fs/nilfs2/mdt.c               |  2 +-
>  fs/nilfs2/namei.c             |  2 +-
>  fs/nilfs2/segment.c           |  2 +-
>  include/trace/events/nilfs2.h | 12 ++++++------
>  12 files changed, 35 insertions(+), 35 deletions(-)
> 
> diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c
> index e7eebb04f9a4080a39f17d4123e58ed7df6b2f4b..7b1cd2baefcf21e54f9260845b02c7c95c148c64 100644
> --- a/fs/nilfs2/alloc.c
> +++ b/fs/nilfs2/alloc.c
> @@ -707,7 +707,7 @@ void nilfs_palloc_commit_free_entry(struct inode *inode,
>  
>  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
>  		nilfs_warn(inode->i_sb,
> -			   "%s (ino=%lu): entry number %llu already freed",
> +			   "%s (ino=%llu): entry number %llu already freed",
>  			   __func__, inode->i_ino,
>  			   (unsigned long long)req->pr_entry_nr);
>  	else
> @@ -748,7 +748,7 @@ void nilfs_palloc_abort_alloc_entry(struct inode *inode,
>  
>  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
>  		nilfs_warn(inode->i_sb,
> -			   "%s (ino=%lu): entry number %llu already freed",
> +			   "%s (ino=%llu): entry number %llu already freed",
>  			   __func__, inode->i_ino,
>  			   (unsigned long long)req->pr_entry_nr);
>  	else
> @@ -861,7 +861,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
>  			if (!nilfs_clear_bit_atomic(lock, group_offset,
>  						    bitmap)) {
>  				nilfs_warn(inode->i_sb,
> -					   "%s (ino=%lu): entry number %llu already freed",
> +					   "%s (ino=%llu): entry number %llu already freed",
>  					   __func__, inode->i_ino,
>  					   (unsigned long long)entry_nrs[j]);
>  			} else {
> @@ -906,7 +906,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
>  							      last_nrs[k]);
>  			if (ret && ret != -ENOENT)
>  				nilfs_warn(inode->i_sb,
> -					   "error %d deleting block that object (entry=%llu, ino=%lu) belongs to",
> +					   "error %d deleting block that object (entry=%llu, ino=%llu) belongs to",
>  					   ret, (unsigned long long)last_nrs[k],
>  					   inode->i_ino);
>  		}
> @@ -923,7 +923,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
>  			ret = nilfs_palloc_delete_bitmap_block(inode, group);
>  			if (ret && ret != -ENOENT)
>  				nilfs_warn(inode->i_sb,
> -					   "error %d deleting bitmap block of group=%lu, ino=%lu",
> +					   "error %d deleting bitmap block of group=%lu, ino=%llu",
>  					   ret, group, inode->i_ino);
>  		}
>  	}
> diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
> index ccc1a7aa52d2064d56b826058554264c498d592f..824f2bd91c167965ec3a660202b6e6c5f1fe007e 100644
> --- a/fs/nilfs2/bmap.c
> +++ b/fs/nilfs2/bmap.c
> @@ -33,7 +33,7 @@ static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap,
>  
>  	if (err == -EINVAL) {
>  		__nilfs_error(inode->i_sb, fname,
> -			      "broken bmap (inode number=%lu)", inode->i_ino);
> +			      "broken bmap (inode number=%llu)", inode->i_ino);
>  		err = -EIO;
>  	}
>  	return err;
> diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c
> index 56836712909201775907483887e8a0022851bbec..2e553d698d0f3980de98fced415dfd819ddbca0a 100644
> --- a/fs/nilfs2/btnode.c
> +++ b/fs/nilfs2/btnode.c
> @@ -64,7 +64,7 @@ nilfs_btnode_create_block(struct address_space *btnc, __u64 blocknr)
>  		 * clearing of an abandoned b-tree node is missing somewhere).
>  		 */
>  		nilfs_error(inode->i_sb,
> -			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%lu)",
> +			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%llu)",
>  			    (unsigned long long)blocknr, inode->i_ino);
>  		goto failed;
>  	}
> diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
> index dd0c8e560ef6a2c96515025321914e0d73f41144..3c03f5a741d144d22d1ffb5acf43a035e88c00dc 100644
> --- a/fs/nilfs2/btree.c
> +++ b/fs/nilfs2/btree.c
> @@ -353,7 +353,7 @@ static int nilfs_btree_node_broken(const struct nilfs_btree_node *node,
>  		     nchildren <= 0 ||
>  		     nchildren > NILFS_BTREE_NODE_NCHILDREN_MAX(size))) {
>  		nilfs_crit(inode->i_sb,
> -			   "bad btree node (ino=%lu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
> +			   "bad btree node (ino=%llu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
>  			   inode->i_ino, (unsigned long long)blocknr, level,
>  			   flags, nchildren);
>  		ret = 1;
> @@ -384,7 +384,7 @@ static int nilfs_btree_root_broken(const struct nilfs_btree_node *node,
>  		     nchildren > NILFS_BTREE_ROOT_NCHILDREN_MAX ||
>  		     (nchildren == 0 && level > NILFS_BTREE_LEVEL_NODE_MIN))) {
>  		nilfs_crit(inode->i_sb,
> -			   "bad btree root (ino=%lu): level = %d, flags = 0x%x, nchildren = %d",
> +			   "bad btree root (ino=%llu): level = %d, flags = 0x%x, nchildren = %d",
>  			   inode->i_ino, level, flags, nchildren);
>  		ret = 1;
>  	}
> @@ -453,7 +453,7 @@ static int nilfs_btree_bad_node(const struct nilfs_bmap *btree,
>  	if (unlikely(nilfs_btree_node_get_level(node) != level)) {
>  		dump_stack();
>  		nilfs_crit(btree->b_inode->i_sb,
> -			   "btree level mismatch (ino=%lu): %d != %d",
> +			   "btree level mismatch (ino=%llu): %d != %d",
>  			   btree->b_inode->i_ino,
>  			   nilfs_btree_node_get_level(node), level);
>  		return 1;
> @@ -521,7 +521,7 @@ static int __nilfs_btree_get_block(const struct nilfs_bmap *btree, __u64 ptr,
>   out_no_wait:
>  	if (!buffer_uptodate(bh)) {
>  		nilfs_err(btree->b_inode->i_sb,
> -			  "I/O error reading b-tree node block (ino=%lu, blocknr=%llu)",
> +			  "I/O error reading b-tree node block (ino=%llu, blocknr=%llu)",
>  			  btree->b_inode->i_ino, (unsigned long long)ptr);
>  		brelse(bh);
>  		return -EIO;
> @@ -2104,7 +2104,7 @@ static int nilfs_btree_propagate(struct nilfs_bmap *btree,
>  	if (ret < 0) {
>  		if (unlikely(ret == -ENOENT)) {
>  			nilfs_crit(btree->b_inode->i_sb,
> -				   "writing node/leaf block does not appear in b-tree (ino=%lu) at key=%llu, level=%d",
> +				   "writing node/leaf block does not appear in b-tree (ino=%llu) at key=%llu, level=%d",
>  				   btree->b_inode->i_ino,
>  				   (unsigned long long)key, level);
>  			ret = -EINVAL;
> @@ -2146,7 +2146,7 @@ static void nilfs_btree_add_dirty_buffer(struct nilfs_bmap *btree,
>  	    level >= NILFS_BTREE_LEVEL_MAX) {
>  		dump_stack();
>  		nilfs_warn(btree->b_inode->i_sb,
> -			   "invalid btree level: %d (key=%llu, ino=%lu, blocknr=%llu)",
> +			   "invalid btree level: %d (key=%llu, ino=%llu, blocknr=%llu)",
>  			   level, (unsigned long long)key,
>  			   btree->b_inode->i_ino,
>  			   (unsigned long long)bh->b_blocknr);
> diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
> index b243199036dfa1ab2299efaaa5bdf5da2d159ff2..3653db5cdb65137d1e660bb509c14ec4cbc8840b 100644
> --- a/fs/nilfs2/dir.c
> +++ b/fs/nilfs2/dir.c
> @@ -150,7 +150,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
>  
>  Ebadsize:
>  	nilfs_error(sb,
> -		    "size of directory #%lu is not a multiple of chunk size",
> +		    "size of directory #%llu is not a multiple of chunk size",
>  		    dir->i_ino);
>  	goto fail;
>  Eshort:
> @@ -169,7 +169,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
>  	error = "disallowed inode number";
>  bad_entry:
>  	nilfs_error(sb,
> -		    "bad entry in directory #%lu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",
> +		    "bad entry in directory #%llu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",

I think you missed 'inode=%lu' here. 

>  		    dir->i_ino, error, (folio->index << PAGE_SHIFT) + offs,
>  		    (unsigned long)le64_to_cpu(p->inode),
>  		    rec_len, p->name_len);
> @@ -177,7 +177,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
>  Eend:
>  	p = (struct nilfs_dir_entry *)(kaddr + offs);
>  	nilfs_error(sb,
> -		    "entry in directory #%lu spans the page boundary offset=%lu, inode=%lu",
> +		    "entry in directory #%llu spans the page boundary offset=%lu, inode=%lu",

Ditto. You missed 'inode=%lu' here.

Thanks,
Slava.

>  		    dir->i_ino, (folio->index << PAGE_SHIFT) + offs,
>  		    (unsigned long)le64_to_cpu(p->inode));
>  fail:
> @@ -251,7 +251,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
>  
>  		kaddr = nilfs_get_folio(inode, n, &folio);
>  		if (IS_ERR(kaddr)) {
> -			nilfs_error(sb, "bad page in #%lu", inode->i_ino);
> +			nilfs_error(sb, "bad page in #%llu", inode->i_ino);
>  			ctx->pos += PAGE_SIZE - offset;
>  			return -EIO;
>  		}
> @@ -336,7 +336,7 @@ struct nilfs_dir_entry *nilfs_find_entry(struct inode *dir,
>  		/* next folio is past the blocks we've got */
>  		if (unlikely(n > (dir->i_blocks >> (PAGE_SHIFT - 9)))) {
>  			nilfs_error(dir->i_sb,
> -			       "dir %lu size %lld exceeds block count %llu",
> +			       "dir %llu size %lld exceeds block count %llu",
>  			       dir->i_ino, dir->i_size,
>  			       (unsigned long long)dir->i_blocks);
>  			goto out;
> @@ -382,7 +382,7 @@ struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct folio **foliop)
>  	return next_de;
>  
>  fail:
> -	nilfs_error(dir->i_sb, "directory #%lu %s", dir->i_ino, msg);
> +	nilfs_error(dir->i_sb, "directory #%llu %s", dir->i_ino, msg);
>  	folio_release_kmap(folio, de);
>  	return NULL;
>  }
> diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c
> index 2d8dc6b35b5477947ca12a70288d3a3cce858aab..8bd0b1374e25f8ff510f3b36dbde2acc01aafc1e 100644
> --- a/fs/nilfs2/direct.c
> +++ b/fs/nilfs2/direct.c
> @@ -338,7 +338,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
>  	key = nilfs_bmap_data_get_key(bmap, *bh);
>  	if (unlikely(key > NILFS_DIRECT_KEY_MAX)) {
>  		nilfs_crit(bmap->b_inode->i_sb,
> -			   "%s (ino=%lu): invalid key: %llu",
> +			   "%s (ino=%llu): invalid key: %llu",
>  			   __func__,
>  			   bmap->b_inode->i_ino, (unsigned long long)key);
>  		return -EINVAL;
> @@ -346,7 +346,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
>  	ptr = nilfs_direct_get_ptr(bmap, key);
>  	if (unlikely(ptr == NILFS_BMAP_INVALID_PTR)) {
>  		nilfs_crit(bmap->b_inode->i_sb,
> -			   "%s (ino=%lu): invalid pointer: %llu",
> +			   "%s (ino=%llu): invalid pointer: %llu",
>  			   __func__,
>  			   bmap->b_inode->i_ino, (unsigned long long)ptr);
>  		return -EINVAL;
> diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c
> index 561c220799c7aee879ad866865e377799c8ee6bb..62d4c1b787e95c961a360a4214d621d564ad8b4c 100644
> --- a/fs/nilfs2/gcinode.c
> +++ b/fs/nilfs2/gcinode.c
> @@ -137,7 +137,7 @@ int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
>  		struct inode *inode = bh->b_folio->mapping->host;
>  
>  		nilfs_err(inode->i_sb,
> -			  "I/O error reading %s block for GC (ino=%lu, vblocknr=%llu)",
> +			  "I/O error reading %s block for GC (ino=%llu, vblocknr=%llu)",
>  			  buffer_nilfs_node(bh) ? "node" : "data",
>  			  inode->i_ino, (unsigned long long)bh->b_blocknr);
>  		return -EIO;
> diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
> index 51bde45d586509dda3ef0cb7c46facb7fb2c61dd..51f7e125a311b868860e3e111700d49d4cb98fa6 100644
> --- a/fs/nilfs2/inode.c
> +++ b/fs/nilfs2/inode.c
> @@ -108,7 +108,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff,
>  				 * be locked in this case.
>  				 */
>  				nilfs_warn(inode->i_sb,
> -					   "%s (ino=%lu): a race condition while inserting a data block at offset=%llu",
> +					   "%s (ino=%llu): a race condition while inserting a data block at offset=%llu",
>  					   __func__, inode->i_ino,
>  					   (unsigned long long)blkoff);
>  				err = -EAGAIN;
> @@ -789,7 +789,7 @@ static void nilfs_truncate_bmap(struct nilfs_inode_info *ii,
>  		goto repeat;
>  
>  failed:
> -	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%lu)",
> +	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%llu)",
>  		   ret, ii->vfs_inode.i_ino);
>  }
>  
> @@ -1026,7 +1026,7 @@ int nilfs_set_file_dirty(struct inode *inode, unsigned int nr_dirty)
>  			 * this inode.
>  			 */
>  			nilfs_warn(inode->i_sb,
> -				   "cannot set file dirty (ino=%lu): the file is being freed",
> +				   "cannot set file dirty (ino=%llu): the file is being freed",
>  				   inode->i_ino);
>  			spin_unlock(&nilfs->ns_inode_lock);
>  			return -EINVAL; /*
> @@ -1057,7 +1057,7 @@ int __nilfs_mark_inode_dirty(struct inode *inode, int flags)
>  	err = nilfs_load_inode_block(inode, &ibh);
>  	if (unlikely(err)) {
>  		nilfs_warn(inode->i_sb,
> -			   "cannot mark inode dirty (ino=%lu): error %d loading inode block",
> +			   "cannot mark inode dirty (ino=%llu): error %d loading inode block",
>  			   inode->i_ino, err);
>  		return err;
>  	}
> diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
> index 946b0d3534a5f22f34ac44a91fb121541881c548..09adb40c65e505d92012a3d2f5fe8a5696e10056 100644
> --- a/fs/nilfs2/mdt.c
> +++ b/fs/nilfs2/mdt.c
> @@ -203,7 +203,7 @@ static int nilfs_mdt_read_block(struct inode *inode, unsigned long block,
>  	err = -EIO;
>  	if (!buffer_uptodate(first_bh)) {
>  		nilfs_err(inode->i_sb,
> -			  "I/O error reading meta-data file (ino=%lu, block-offset=%lu)",
> +			  "I/O error reading meta-data file (ino=%llu, block-offset=%lu)",
>  			  inode->i_ino, block);
>  		goto failed_bh;
>  	}
> diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c
> index 40f4b1a28705b6e0eb8f0978cf3ac18b43aa1331..40ac679ec56e400b1df98e9be6fe9ca338a9ba51 100644
> --- a/fs/nilfs2/namei.c
> +++ b/fs/nilfs2/namei.c
> @@ -292,7 +292,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry)
>  
>  	if (!inode->i_nlink) {
>  		nilfs_warn(inode->i_sb,
> -			   "deleting nonexistent file (ino=%lu), %d",
> +			   "deleting nonexistent file (ino=%llu), %d",
>  			   inode->i_ino, inode->i_nlink);
>  		set_nlink(inode, 1);
>  	}
> diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> index 098a3bd103e04cd09b0689fe2017380d74664496..4b1bf559f3524b1cc3965dae9fd3e5745718569d 100644
> --- a/fs/nilfs2/segment.c
> +++ b/fs/nilfs2/segment.c
> @@ -2024,7 +2024,7 @@ static int nilfs_segctor_collect_dirty_files(struct nilfs_sc_info *sci,
>  				ifile, ii->vfs_inode.i_ino, &ibh);
>  			if (unlikely(err)) {
>  				nilfs_warn(sci->sc_super,
> -					   "log writer: error %d getting inode block (ino=%lu)",
> +					   "log writer: error %d getting inode block (ino=%llu)",
>  					   err, ii->vfs_inode.i_ino);
>  				return err;
>  			}
> diff --git a/include/trace/events/nilfs2.h b/include/trace/events/nilfs2.h
> index 8880c11733dd307c223cc62ee34ebeff650ecb12..86a0011c9eeaf031cfa0b79875b2b106ef8b7cfd 100644
> --- a/include/trace/events/nilfs2.h
> +++ b/include/trace/events/nilfs2.h
> @@ -165,14 +165,14 @@ TRACE_EVENT(nilfs2_segment_usage_freed,
>  
>  TRACE_EVENT(nilfs2_mdt_insert_new_block,
>  	    TP_PROTO(struct inode *inode,
> -		     unsigned long ino,
> +		     u64 ino,
>  		     unsigned long block),
>  
>  	    TP_ARGS(inode, ino, block),
>  
>  	    TP_STRUCT__entry(
>  		    __field(struct inode *, inode)
> -		    __field(unsigned long, ino)
> +		    __field(u64, ino)
>  		    __field(unsigned long, block)
>  	    ),
>  
> @@ -182,7 +182,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
>  		    __entry->block = block;
>  		    ),
>  
> -	    TP_printk("inode = %p ino = %lu block = %lu",
> +	    TP_printk("inode = %p ino = %llu block = %lu",
>  		      __entry->inode,
>  		      __entry->ino,
>  		      __entry->block)
> @@ -190,7 +190,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
>  
>  TRACE_EVENT(nilfs2_mdt_submit_block,
>  	    TP_PROTO(struct inode *inode,
> -		     unsigned long ino,
> +		     u64 ino,
>  		     unsigned long blkoff,
>  		     enum req_op mode),
>  
> @@ -198,7 +198,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
>  
>  	    TP_STRUCT__entry(
>  		    __field(struct inode *, inode)
> -		    __field(unsigned long, ino)
> +		    __field(u64, ino)
>  		    __field(unsigned long, blkoff)
>  		    /*
>  		     * Use field_struct() to avoid is_signed_type() on the
> @@ -214,7 +214,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
>  		    __entry->mode = mode;
>  		    ),
>  
> -	    TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x",
> +	    TP_printk("inode = %p ino = %llu blkoff = %lu mode = %x",
>  		      __entry->inode,
>  		      __entry->ino,
>  		      __entry->blkoff,

^ permalink raw reply

* Re: [PATCH 12/61] nfsd: update format strings for u64 i_ino
From: Chuck Lever @ 2026-02-26 19:48 UTC (permalink / raw)
  To: Jeff Layton, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Paulo Alcantara,
	Andreas Dilger, Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust,
	Anna Schumaker, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-12-ccceff366db9@kernel.org>

On 2/26/26 10:55 AM, Jeff Layton wrote:
> Update format strings from %ld/%lu to %lld/%llu for i_ino, which is
> now a u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/nfsd/export.c    | 2 +-
>  fs/nfsd/nfs4state.c | 4 ++--
>  fs/nfsd/nfsfh.c     | 4 ++--
>  fs/nfsd/vfs.c       | 2 +-
>  4 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 8fdbba7cad96443d92cc7fdeea6158c4cc681be1..334b63eb966e71e6af6adde61aa1123f01b4390b 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -1039,7 +1039,7 @@ exp_rootfh(struct net *net, struct auth_domain *clp, char *name,
>  	}
>  	inode = d_inode(path.dentry);
>  
> -	dprintk("nfsd: exp_rootfh(%s [%p] %s:%s/%ld)\n",
> +	dprintk("nfsd: exp_rootfh(%s [%p] %s:%s/%lld)\n",
>  		 name, path.dentry, clp->name,
>  		 inode->i_sb->s_id, inode->i_ino);
>  	exp = exp_parent(cd, clp, &path);
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 6b9c399b89dfb71a52b9c97f0efe9a1dea0558a6..a569d89ac9123d66bb47e7d74c7c98610de21da2 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -1253,7 +1253,7 @@ static void nfsd4_finalize_deleg_timestamps(struct nfs4_delegation *dp, struct f
>  	if (ret) {
>  		struct inode *inode = file_inode(f);
>  
> -		pr_notice_ratelimited("nfsd: Unable to update timestamps on inode %02x:%02x:%lu: %d\n",
> +		pr_notice_ratelimited("nfsd: Unable to update timestamps on inode %02x:%02x:%llu: %d\n",
>  					MAJOR(inode->i_sb->s_dev),
>  					MINOR(inode->i_sb->s_dev),
>  					inode->i_ino, ret);
> @@ -2888,7 +2888,7 @@ static void nfs4_show_superblock(struct seq_file *s, struct nfsd_file *f)
>  {
>  	struct inode *inode = file_inode(f->nf_file);
>  
> -	seq_printf(s, "superblock: \"%02x:%02x:%ld\"",
> +	seq_printf(s, "superblock: \"%02x:%02x:%llu\"",
>  					MAJOR(inode->i_sb->s_dev),
>  					 MINOR(inode->i_sb->s_dev),
>  					 inode->i_ino);
> diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
> index ed85dd43da18e6d4c4667ff14dc035f2eacff1d6..cfd143b41eb1fb53868f378d668905c1c7d5f868 100644
> --- a/fs/nfsd/nfsfh.c
> +++ b/fs/nfsd/nfsfh.c
> @@ -601,9 +601,9 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry,
>  	struct inode * inode = d_inode(dentry);
>  	dev_t ex_dev = exp_sb(exp)->s_dev;
>  
> -	dprintk("nfsd: fh_compose(exp %02x:%02x/%ld %pd2, ino=%ld)\n",
> +	dprintk("nfsd: fh_compose(exp %02x:%02x/%lld %pd2, ino=%lld)\n",
>  		MAJOR(ex_dev), MINOR(ex_dev),
> -		(long) d_inode(exp->ex_path.dentry)->i_ino,
> +		(long long) d_inode(exp->ex_path.dentry)->i_ino,
>  		dentry,
>  		(inode ? inode->i_ino : 0));
>  
> diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
> index c884c3f34afb044ee5cacc962a04a97de2f7fd88..dde09f3734c2844a3fe0b6d18d596276a19aa2d1 100644
> --- a/fs/nfsd/vfs.c
> +++ b/fs/nfsd/vfs.c
> @@ -1163,7 +1163,7 @@ nfsd_direct_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
>  	} else if (unlikely(host_err == -EINVAL)) {
>  		struct inode *inode = d_inode(fhp->fh_dentry);
>  
> -		pr_info_ratelimited("nfsd: Direct I/O alignment failure on %s/%ld\n",
> +		pr_info_ratelimited("nfsd: Direct I/O alignment failure on %s/%lld\n",
>  				    inode->i_sb->s_id, inode->i_ino);
>  		host_err = -ESERVERFAULT;
>  	}
> 

Suggestion: Let's use the %llu format specifier consistently for
inode->i_ino, which is unsigned.

Reviewed-by: Chuck Lever <chuck.lever@oracle.com>


-- 
Chuck Lever

^ permalink raw reply

* Re:  [PATCH 17/61] nilfs2: update for u64 i_ino
From: Jeff Layton @ 2026-02-26 20:06 UTC (permalink / raw)
  To: Viacheslav Dubeyko, david@kernel.org, namhyung@kernel.org,
	oleg@redhat.com, anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, jack@suse.cz,
	ebiggers@kernel.org, Ondrej Mosnacek, mark.rutland@arm.com,
	casey@schaufler-ca.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	asmadeus@codewreck.org, jth@kernel.org, shaggy@kernel.org,
	serge@hallyn.com, jaharkes@cs.cmu.edu, trondmy@kernel.org,
	jolsa@kernel.org, ericvh@kernel.org, simona@ffwll.ch,
	willemb@google.com, aivazian.tigran@gmail.com,
	hubcap@omnibond.com, muchun.song@linux.dev, sfrench@samba.org,
	neil@brown.name, jmorris@namei.org, jlbec@evilplan.org,
	chuck.lever@oracle.com, ronniesahlberg@gmail.com,
	lucho@ionkov.net, dan.j.williams@intel.com, raven@themaw.net,
	Alex Markuze, mhiramat@kernel.org, alexander.deucher@amd.com,
	mathieu.desnoyers@efficios.com, horms@kernel.org, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, peterz@infradead.org, christian.koenig@amd.com,
	pc@manguebit.org, martin@omnibond.com, naohiro.aota@wdc.com,
	frank.li@vivo.com, dsterba@suse.com, zohar@linux.ibm.com,
	code@tyhicks.com, dwmw2@infradead.org, kuba@kernel.org,
	kuniyu@google.com, nico@fluxnic.net, jack@suse.com,
	dlemoal@kernel.org, viro@zeniv.linux.org.uk,
	stephen.smalley.work@gmail.com, salah.triki@gmail.com,
	David Howells, paul@paul-moore.com, luisbg@kernel.org,
	irogers@google.com, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, coda@cs.cmu.edu, Ingo Molnar,
	alex.aring@gmail.com, airlied@gmail.com, chengzhihao1@huawei.com,
	Paolo Abeni, marc.dionne@auristor.com,
	almaz.alexandrovich@paragon-software.com, davem@davemloft.net,
	hch@infradead.org
  Cc: ecryptfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-ext4@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	fsverity@lists.linux.dev, ntfs3@lists.linux.dev,
	ocfs2-devel@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-integrity@vger.kernel.org,
	samba-technical@lists.samba.org, linux-nilfs@vger.kernel.org,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	linux-trace-kernel@vger.kernel.org, v9fs@lists.linux.dev,
	linux-xfs@vger.kernel.org, linux-x25@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-afs@lists.infradead.org, linux-fscrypt@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <34b1d1f43043ca1b71a3ca9ea5ebce597a4c02aa.camel@ibm.com>

On Thu, 2026-02-26 at 19:46 +0000, Viacheslav Dubeyko wrote:
> On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> > Update nilfs2 trace events and filesystem code for u64 i_ino:
> > 
> > - Change __field(ino_t, ...) to __field(u64, ...) in trace events
> > - Update format strings from %lu to %llu
> > - Cast to (unsigned long long) in TP_printk
> > 
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > ---
> >  fs/nilfs2/alloc.c             | 10 +++++-----
> >  fs/nilfs2/bmap.c              |  2 +-
> >  fs/nilfs2/btnode.c            |  2 +-
> >  fs/nilfs2/btree.c             | 12 ++++++------
> >  fs/nilfs2/dir.c               | 12 ++++++------
> >  fs/nilfs2/direct.c            |  4 ++--
> >  fs/nilfs2/gcinode.c           |  2 +-
> >  fs/nilfs2/inode.c             |  8 ++++----
> >  fs/nilfs2/mdt.c               |  2 +-
> >  fs/nilfs2/namei.c             |  2 +-
> >  fs/nilfs2/segment.c           |  2 +-
> >  include/trace/events/nilfs2.h | 12 ++++++------
> >  12 files changed, 35 insertions(+), 35 deletions(-)
> > 
> > diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c
> > index e7eebb04f9a4080a39f17d4123e58ed7df6b2f4b..7b1cd2baefcf21e54f9260845b02c7c95c148c64 100644
> > --- a/fs/nilfs2/alloc.c
> > +++ b/fs/nilfs2/alloc.c
> > @@ -707,7 +707,7 @@ void nilfs_palloc_commit_free_entry(struct inode *inode,
> >  
> >  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
> >  		nilfs_warn(inode->i_sb,
> > -			   "%s (ino=%lu): entry number %llu already freed",
> > +			   "%s (ino=%llu): entry number %llu already freed",
> >  			   __func__, inode->i_ino,
> >  			   (unsigned long long)req->pr_entry_nr);
> >  	else
> > @@ -748,7 +748,7 @@ void nilfs_palloc_abort_alloc_entry(struct inode *inode,
> >  
> >  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
> >  		nilfs_warn(inode->i_sb,
> > -			   "%s (ino=%lu): entry number %llu already freed",
> > +			   "%s (ino=%llu): entry number %llu already freed",
> >  			   __func__, inode->i_ino,
> >  			   (unsigned long long)req->pr_entry_nr);
> >  	else
> > @@ -861,7 +861,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> >  			if (!nilfs_clear_bit_atomic(lock, group_offset,
> >  						    bitmap)) {
> >  				nilfs_warn(inode->i_sb,
> > -					   "%s (ino=%lu): entry number %llu already freed",
> > +					   "%s (ino=%llu): entry number %llu already freed",
> >  					   __func__, inode->i_ino,
> >  					   (unsigned long long)entry_nrs[j]);
> >  			} else {
> > @@ -906,7 +906,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> >  							      last_nrs[k]);
> >  			if (ret && ret != -ENOENT)
> >  				nilfs_warn(inode->i_sb,
> > -					   "error %d deleting block that object (entry=%llu, ino=%lu) belongs to",
> > +					   "error %d deleting block that object (entry=%llu, ino=%llu) belongs to",
> >  					   ret, (unsigned long long)last_nrs[k],
> >  					   inode->i_ino);
> >  		}
> > @@ -923,7 +923,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> >  			ret = nilfs_palloc_delete_bitmap_block(inode, group);
> >  			if (ret && ret != -ENOENT)
> >  				nilfs_warn(inode->i_sb,
> > -					   "error %d deleting bitmap block of group=%lu, ino=%lu",
> > +					   "error %d deleting bitmap block of group=%lu, ino=%llu",
> >  					   ret, group, inode->i_ino);
> >  		}
> >  	}
> > diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
> > index ccc1a7aa52d2064d56b826058554264c498d592f..824f2bd91c167965ec3a660202b6e6c5f1fe007e 100644
> > --- a/fs/nilfs2/bmap.c
> > +++ b/fs/nilfs2/bmap.c
> > @@ -33,7 +33,7 @@ static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap,
> >  
> >  	if (err == -EINVAL) {
> >  		__nilfs_error(inode->i_sb, fname,
> > -			      "broken bmap (inode number=%lu)", inode->i_ino);
> > +			      "broken bmap (inode number=%llu)", inode->i_ino);
> >  		err = -EIO;
> >  	}
> >  	return err;
> > diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c
> > index 56836712909201775907483887e8a0022851bbec..2e553d698d0f3980de98fced415dfd819ddbca0a 100644
> > --- a/fs/nilfs2/btnode.c
> > +++ b/fs/nilfs2/btnode.c
> > @@ -64,7 +64,7 @@ nilfs_btnode_create_block(struct address_space *btnc, __u64 blocknr)
> >  		 * clearing of an abandoned b-tree node is missing somewhere).
> >  		 */
> >  		nilfs_error(inode->i_sb,
> > -			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%lu)",
> > +			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%llu)",
> >  			    (unsigned long long)blocknr, inode->i_ino);
> >  		goto failed;
> >  	}
> > diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
> > index dd0c8e560ef6a2c96515025321914e0d73f41144..3c03f5a741d144d22d1ffb5acf43a035e88c00dc 100644
> > --- a/fs/nilfs2/btree.c
> > +++ b/fs/nilfs2/btree.c
> > @@ -353,7 +353,7 @@ static int nilfs_btree_node_broken(const struct nilfs_btree_node *node,
> >  		     nchildren <= 0 ||
> >  		     nchildren > NILFS_BTREE_NODE_NCHILDREN_MAX(size))) {
> >  		nilfs_crit(inode->i_sb,
> > -			   "bad btree node (ino=%lu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
> > +			   "bad btree node (ino=%llu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
> >  			   inode->i_ino, (unsigned long long)blocknr, level,
> >  			   flags, nchildren);
> >  		ret = 1;
> > @@ -384,7 +384,7 @@ static int nilfs_btree_root_broken(const struct nilfs_btree_node *node,
> >  		     nchildren > NILFS_BTREE_ROOT_NCHILDREN_MAX ||
> >  		     (nchildren == 0 && level > NILFS_BTREE_LEVEL_NODE_MIN))) {
> >  		nilfs_crit(inode->i_sb,
> > -			   "bad btree root (ino=%lu): level = %d, flags = 0x%x, nchildren = %d",
> > +			   "bad btree root (ino=%llu): level = %d, flags = 0x%x, nchildren = %d",
> >  			   inode->i_ino, level, flags, nchildren);
> >  		ret = 1;
> >  	}
> > @@ -453,7 +453,7 @@ static int nilfs_btree_bad_node(const struct nilfs_bmap *btree,
> >  	if (unlikely(nilfs_btree_node_get_level(node) != level)) {
> >  		dump_stack();
> >  		nilfs_crit(btree->b_inode->i_sb,
> > -			   "btree level mismatch (ino=%lu): %d != %d",
> > +			   "btree level mismatch (ino=%llu): %d != %d",
> >  			   btree->b_inode->i_ino,
> >  			   nilfs_btree_node_get_level(node), level);
> >  		return 1;
> > @@ -521,7 +521,7 @@ static int __nilfs_btree_get_block(const struct nilfs_bmap *btree, __u64 ptr,
> >   out_no_wait:
> >  	if (!buffer_uptodate(bh)) {
> >  		nilfs_err(btree->b_inode->i_sb,
> > -			  "I/O error reading b-tree node block (ino=%lu, blocknr=%llu)",
> > +			  "I/O error reading b-tree node block (ino=%llu, blocknr=%llu)",
> >  			  btree->b_inode->i_ino, (unsigned long long)ptr);
> >  		brelse(bh);
> >  		return -EIO;
> > @@ -2104,7 +2104,7 @@ static int nilfs_btree_propagate(struct nilfs_bmap *btree,
> >  	if (ret < 0) {
> >  		if (unlikely(ret == -ENOENT)) {
> >  			nilfs_crit(btree->b_inode->i_sb,
> > -				   "writing node/leaf block does not appear in b-tree (ino=%lu) at key=%llu, level=%d",
> > +				   "writing node/leaf block does not appear in b-tree (ino=%llu) at key=%llu, level=%d",
> >  				   btree->b_inode->i_ino,
> >  				   (unsigned long long)key, level);
> >  			ret = -EINVAL;
> > @@ -2146,7 +2146,7 @@ static void nilfs_btree_add_dirty_buffer(struct nilfs_bmap *btree,
> >  	    level >= NILFS_BTREE_LEVEL_MAX) {
> >  		dump_stack();
> >  		nilfs_warn(btree->b_inode->i_sb,
> > -			   "invalid btree level: %d (key=%llu, ino=%lu, blocknr=%llu)",
> > +			   "invalid btree level: %d (key=%llu, ino=%llu, blocknr=%llu)",
> >  			   level, (unsigned long long)key,
> >  			   btree->b_inode->i_ino,
> >  			   (unsigned long long)bh->b_blocknr);
> > diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
> > index b243199036dfa1ab2299efaaa5bdf5da2d159ff2..3653db5cdb65137d1e660bb509c14ec4cbc8840b 100644
> > --- a/fs/nilfs2/dir.c
> > +++ b/fs/nilfs2/dir.c
> > @@ -150,7 +150,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> >  
> >  Ebadsize:
> >  	nilfs_error(sb,
> > -		    "size of directory #%lu is not a multiple of chunk size",
> > +		    "size of directory #%llu is not a multiple of chunk size",
> >  		    dir->i_ino);
> >  	goto fail;
> >  Eshort:
> > @@ -169,7 +169,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> >  	error = "disallowed inode number";
> >  bad_entry:
> >  	nilfs_error(sb,
> > -		    "bad entry in directory #%lu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",
> > +		    "bad entry in directory #%llu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",
> 
> I think you missed 'inode=%lu' here. 

That is actually the placeholder for this:

    (unsigned long)le64_to_cpu(p->inode)

...which is not inode->i_ino. I do agree that the cast probably no
longer makes sense with this change, but I'd probably leave that to a
later cleanup so we can keep this set focused on the i_ino change.


> >  		    dir->i_ino, error, (folio->index << PAGE_SHIFT) + offs,
> >  		    (unsigned long)le64_to_cpu(p->inode),
> >  		    rec_len, p->name_len);
> > @@ -177,7 +177,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> >  Eend:
> >  	p = (struct nilfs_dir_entry *)(kaddr + offs);
> >  	nilfs_error(sb,
> > -		    "entry in directory #%lu spans the page boundary offset=%lu, inode=%lu",
> > +		    "entry in directory #%llu spans the page boundary offset=%lu, inode=%lu",
> 
> Ditto. You missed 'inode=%lu' here.
> 
>

Same here.

> >  		    dir->i_ino, (folio->index << PAGE_SHIFT) + offs,
> >  		    (unsigned long)le64_to_cpu(p->inode));
> >  fail:
> > @@ -251,7 +251,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
> >  
> >  		kaddr = nilfs_get_folio(inode, n, &folio);
> >  		if (IS_ERR(kaddr)) {
> > -			nilfs_error(sb, "bad page in #%lu", inode->i_ino);
> > +			nilfs_error(sb, "bad page in #%llu", inode->i_ino);
> >  			ctx->pos += PAGE_SIZE - offset;
> >  			return -EIO;
> >  		}
> > @@ -336,7 +336,7 @@ struct nilfs_dir_entry *nilfs_find_entry(struct inode *dir,
> >  		/* next folio is past the blocks we've got */
> >  		if (unlikely(n > (dir->i_blocks >> (PAGE_SHIFT - 9)))) {
> >  			nilfs_error(dir->i_sb,
> > -			       "dir %lu size %lld exceeds block count %llu",
> > +			       "dir %llu size %lld exceeds block count %llu",
> >  			       dir->i_ino, dir->i_size,
> >  			       (unsigned long long)dir->i_blocks);
> >  			goto out;
> > @@ -382,7 +382,7 @@ struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct folio **foliop)
> >  	return next_de;
> >  
> >  fail:
> > -	nilfs_error(dir->i_sb, "directory #%lu %s", dir->i_ino, msg);
> > +	nilfs_error(dir->i_sb, "directory #%llu %s", dir->i_ino, msg);
> >  	folio_release_kmap(folio, de);
> >  	return NULL;
> >  }
> > diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c
> > index 2d8dc6b35b5477947ca12a70288d3a3cce858aab..8bd0b1374e25f8ff510f3b36dbde2acc01aafc1e 100644
> > --- a/fs/nilfs2/direct.c
> > +++ b/fs/nilfs2/direct.c
> > @@ -338,7 +338,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
> >  	key = nilfs_bmap_data_get_key(bmap, *bh);
> >  	if (unlikely(key > NILFS_DIRECT_KEY_MAX)) {
> >  		nilfs_crit(bmap->b_inode->i_sb,
> > -			   "%s (ino=%lu): invalid key: %llu",
> > +			   "%s (ino=%llu): invalid key: %llu",
> >  			   __func__,
> >  			   bmap->b_inode->i_ino, (unsigned long long)key);
> >  		return -EINVAL;
> > @@ -346,7 +346,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
> >  	ptr = nilfs_direct_get_ptr(bmap, key);
> >  	if (unlikely(ptr == NILFS_BMAP_INVALID_PTR)) {
> >  		nilfs_crit(bmap->b_inode->i_sb,
> > -			   "%s (ino=%lu): invalid pointer: %llu",
> > +			   "%s (ino=%llu): invalid pointer: %llu",
> >  			   __func__,
> >  			   bmap->b_inode->i_ino, (unsigned long long)ptr);
> >  		return -EINVAL;
> > diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c
> > index 561c220799c7aee879ad866865e377799c8ee6bb..62d4c1b787e95c961a360a4214d621d564ad8b4c 100644
> > --- a/fs/nilfs2/gcinode.c
> > +++ b/fs/nilfs2/gcinode.c
> > @@ -137,7 +137,7 @@ int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
> >  		struct inode *inode = bh->b_folio->mapping->host;
> >  
> >  		nilfs_err(inode->i_sb,
> > -			  "I/O error reading %s block for GC (ino=%lu, vblocknr=%llu)",
> > +			  "I/O error reading %s block for GC (ino=%llu, vblocknr=%llu)",
> >  			  buffer_nilfs_node(bh) ? "node" : "data",
> >  			  inode->i_ino, (unsigned long long)bh->b_blocknr);
> >  		return -EIO;
> > diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
> > index 51bde45d586509dda3ef0cb7c46facb7fb2c61dd..51f7e125a311b868860e3e111700d49d4cb98fa6 100644
> > --- a/fs/nilfs2/inode.c
> > +++ b/fs/nilfs2/inode.c
> > @@ -108,7 +108,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff,
> >  				 * be locked in this case.
> >  				 */
> >  				nilfs_warn(inode->i_sb,
> > -					   "%s (ino=%lu): a race condition while inserting a data block at offset=%llu",
> > +					   "%s (ino=%llu): a race condition while inserting a data block at offset=%llu",
> >  					   __func__, inode->i_ino,
> >  					   (unsigned long long)blkoff);
> >  				err = -EAGAIN;
> > @@ -789,7 +789,7 @@ static void nilfs_truncate_bmap(struct nilfs_inode_info *ii,
> >  		goto repeat;
> >  
> >  failed:
> > -	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%lu)",
> > +	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%llu)",
> >  		   ret, ii->vfs_inode.i_ino);
> >  }
> >  
> > @@ -1026,7 +1026,7 @@ int nilfs_set_file_dirty(struct inode *inode, unsigned int nr_dirty)
> >  			 * this inode.
> >  			 */
> >  			nilfs_warn(inode->i_sb,
> > -				   "cannot set file dirty (ino=%lu): the file is being freed",
> > +				   "cannot set file dirty (ino=%llu): the file is being freed",
> >  				   inode->i_ino);
> >  			spin_unlock(&nilfs->ns_inode_lock);
> >  			return -EINVAL; /*
> > @@ -1057,7 +1057,7 @@ int __nilfs_mark_inode_dirty(struct inode *inode, int flags)
> >  	err = nilfs_load_inode_block(inode, &ibh);
> >  	if (unlikely(err)) {
> >  		nilfs_warn(inode->i_sb,
> > -			   "cannot mark inode dirty (ino=%lu): error %d loading inode block",
> > +			   "cannot mark inode dirty (ino=%llu): error %d loading inode block",
> >  			   inode->i_ino, err);
> >  		return err;
> >  	}
> > diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
> > index 946b0d3534a5f22f34ac44a91fb121541881c548..09adb40c65e505d92012a3d2f5fe8a5696e10056 100644
> > --- a/fs/nilfs2/mdt.c
> > +++ b/fs/nilfs2/mdt.c
> > @@ -203,7 +203,7 @@ static int nilfs_mdt_read_block(struct inode *inode, unsigned long block,
> >  	err = -EIO;
> >  	if (!buffer_uptodate(first_bh)) {
> >  		nilfs_err(inode->i_sb,
> > -			  "I/O error reading meta-data file (ino=%lu, block-offset=%lu)",
> > +			  "I/O error reading meta-data file (ino=%llu, block-offset=%lu)",
> >  			  inode->i_ino, block);
> >  		goto failed_bh;
> >  	}
> > diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c
> > index 40f4b1a28705b6e0eb8f0978cf3ac18b43aa1331..40ac679ec56e400b1df98e9be6fe9ca338a9ba51 100644
> > --- a/fs/nilfs2/namei.c
> > +++ b/fs/nilfs2/namei.c
> > @@ -292,7 +292,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry)
> >  
> >  	if (!inode->i_nlink) {
> >  		nilfs_warn(inode->i_sb,
> > -			   "deleting nonexistent file (ino=%lu), %d",
> > +			   "deleting nonexistent file (ino=%llu), %d",
> >  			   inode->i_ino, inode->i_nlink);
> >  		set_nlink(inode, 1);
> >  	}
> > diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> > index 098a3bd103e04cd09b0689fe2017380d74664496..4b1bf559f3524b1cc3965dae9fd3e5745718569d 100644
> > --- a/fs/nilfs2/segment.c
> > +++ b/fs/nilfs2/segment.c
> > @@ -2024,7 +2024,7 @@ static int nilfs_segctor_collect_dirty_files(struct nilfs_sc_info *sci,
> >  				ifile, ii->vfs_inode.i_ino, &ibh);
> >  			if (unlikely(err)) {
> >  				nilfs_warn(sci->sc_super,
> > -					   "log writer: error %d getting inode block (ino=%lu)",
> > +					   "log writer: error %d getting inode block (ino=%llu)",
> >  					   err, ii->vfs_inode.i_ino);
> >  				return err;
> >  			}
> > diff --git a/include/trace/events/nilfs2.h b/include/trace/events/nilfs2.h
> > index 8880c11733dd307c223cc62ee34ebeff650ecb12..86a0011c9eeaf031cfa0b79875b2b106ef8b7cfd 100644
> > --- a/include/trace/events/nilfs2.h
> > +++ b/include/trace/events/nilfs2.h
> > @@ -165,14 +165,14 @@ TRACE_EVENT(nilfs2_segment_usage_freed,
> >  
> >  TRACE_EVENT(nilfs2_mdt_insert_new_block,
> >  	    TP_PROTO(struct inode *inode,
> > -		     unsigned long ino,
> > +		     u64 ino,
> >  		     unsigned long block),
> >  
> >  	    TP_ARGS(inode, ino, block),
> >  
> >  	    TP_STRUCT__entry(
> >  		    __field(struct inode *, inode)
> > -		    __field(unsigned long, ino)
> > +		    __field(u64, ino)
> >  		    __field(unsigned long, block)
> >  	    ),
> >  
> > @@ -182,7 +182,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
> >  		    __entry->block = block;
> >  		    ),
> >  
> > -	    TP_printk("inode = %p ino = %lu block = %lu",
> > +	    TP_printk("inode = %p ino = %llu block = %lu",
> >  		      __entry->inode,
> >  		      __entry->ino,
> >  		      __entry->block)
> > @@ -190,7 +190,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
> >  
> >  TRACE_EVENT(nilfs2_mdt_submit_block,
> >  	    TP_PROTO(struct inode *inode,
> > -		     unsigned long ino,
> > +		     u64 ino,
> >  		     unsigned long blkoff,
> >  		     enum req_op mode),
> >  
> > @@ -198,7 +198,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
> >  
> >  	    TP_STRUCT__entry(
> >  		    __field(struct inode *, inode)
> > -		    __field(unsigned long, ino)
> > +		    __field(u64, ino)
> >  		    __field(unsigned long, blkoff)
> >  		    /*
> >  		     * Use field_struct() to avoid is_signed_type() on the
> > @@ -214,7 +214,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
> >  		    __entry->mode = mode;
> >  		    ),
> >  
> > -	    TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x",
> > +	    TP_printk("inode = %p ino = %llu blkoff = %lu mode = %x",
> >  		      __entry->inode,
> >  		      __entry->ino,
> >  		      __entry->blkoff,

-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply

* Re: [PATCH 12/61] nfsd: update format strings for u64 i_ino
From: Jeff Layton @ 2026-02-26 20:06 UTC (permalink / raw)
  To: Chuck Lever, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Paulo Alcantara,
	Andreas Dilger, Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust,
	Anna Schumaker, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <8b0bb056-9504-4835-8063-7ddeba328721@oracle.com>

On Thu, 2026-02-26 at 14:48 -0500, Chuck Lever wrote:
> On 2/26/26 10:55 AM, Jeff Layton wrote:
> > Update format strings from %ld/%lu to %lld/%llu for i_ino, which is
> > now a u64.
> > 
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > ---
> >  fs/nfsd/export.c    | 2 +-
> >  fs/nfsd/nfs4state.c | 4 ++--
> >  fs/nfsd/nfsfh.c     | 4 ++--
> >  fs/nfsd/vfs.c       | 2 +-
> >  4 files changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> > index 8fdbba7cad96443d92cc7fdeea6158c4cc681be1..334b63eb966e71e6af6adde61aa1123f01b4390b 100644
> > --- a/fs/nfsd/export.c
> > +++ b/fs/nfsd/export.c
> > @@ -1039,7 +1039,7 @@ exp_rootfh(struct net *net, struct auth_domain *clp, char *name,
> >  	}
> >  	inode = d_inode(path.dentry);
> >  
> > -	dprintk("nfsd: exp_rootfh(%s [%p] %s:%s/%ld)\n",
> > +	dprintk("nfsd: exp_rootfh(%s [%p] %s:%s/%lld)\n",
> >  		 name, path.dentry, clp->name,
> >  		 inode->i_sb->s_id, inode->i_ino);
> >  	exp = exp_parent(cd, clp, &path);
> > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> > index 6b9c399b89dfb71a52b9c97f0efe9a1dea0558a6..a569d89ac9123d66bb47e7d74c7c98610de21da2 100644
> > --- a/fs/nfsd/nfs4state.c
> > +++ b/fs/nfsd/nfs4state.c
> > @@ -1253,7 +1253,7 @@ static void nfsd4_finalize_deleg_timestamps(struct nfs4_delegation *dp, struct f
> >  	if (ret) {
> >  		struct inode *inode = file_inode(f);
> >  
> > -		pr_notice_ratelimited("nfsd: Unable to update timestamps on inode %02x:%02x:%lu: %d\n",
> > +		pr_notice_ratelimited("nfsd: Unable to update timestamps on inode %02x:%02x:%llu: %d\n",
> >  					MAJOR(inode->i_sb->s_dev),
> >  					MINOR(inode->i_sb->s_dev),
> >  					inode->i_ino, ret);
> > @@ -2888,7 +2888,7 @@ static void nfs4_show_superblock(struct seq_file *s, struct nfsd_file *f)
> >  {
> >  	struct inode *inode = file_inode(f->nf_file);
> >  
> > -	seq_printf(s, "superblock: \"%02x:%02x:%ld\"",
> > +	seq_printf(s, "superblock: \"%02x:%02x:%llu\"",
> >  					MAJOR(inode->i_sb->s_dev),
> >  					 MINOR(inode->i_sb->s_dev),
> >  					 inode->i_ino);
> > diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
> > index ed85dd43da18e6d4c4667ff14dc035f2eacff1d6..cfd143b41eb1fb53868f378d668905c1c7d5f868 100644
> > --- a/fs/nfsd/nfsfh.c
> > +++ b/fs/nfsd/nfsfh.c
> > @@ -601,9 +601,9 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry,
> >  	struct inode * inode = d_inode(dentry);
> >  	dev_t ex_dev = exp_sb(exp)->s_dev;
> >  
> > -	dprintk("nfsd: fh_compose(exp %02x:%02x/%ld %pd2, ino=%ld)\n",
> > +	dprintk("nfsd: fh_compose(exp %02x:%02x/%lld %pd2, ino=%lld)\n",
> >  		MAJOR(ex_dev), MINOR(ex_dev),
> > -		(long) d_inode(exp->ex_path.dentry)->i_ino,
> > +		(long long) d_inode(exp->ex_path.dentry)->i_ino,
> >  		dentry,
> >  		(inode ? inode->i_ino : 0));
> >  
> > diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
> > index c884c3f34afb044ee5cacc962a04a97de2f7fd88..dde09f3734c2844a3fe0b6d18d596276a19aa2d1 100644
> > --- a/fs/nfsd/vfs.c
> > +++ b/fs/nfsd/vfs.c
> > @@ -1163,7 +1163,7 @@ nfsd_direct_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
> >  	} else if (unlikely(host_err == -EINVAL)) {
> >  		struct inode *inode = d_inode(fhp->fh_dentry);
> >  
> > -		pr_info_ratelimited("nfsd: Direct I/O alignment failure on %s/%ld\n",
> > +		pr_info_ratelimited("nfsd: Direct I/O alignment failure on %s/%lld\n",
> >  				    inode->i_sb->s_id, inode->i_ino);
> >  		host_err = -ESERVERFAULT;
> >  	}
> > 
> 
> Suggestion: Let's use the %llu format specifier consistently for
> inode->i_ino, which is unsigned.
> 
> Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
> 

Good plan. I'll have claude do a pass for that in the next set.
-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply

* RE:  [PATCH 17/61] nilfs2: update for u64 i_ino
From: Viacheslav Dubeyko @ 2026-02-26 20:09 UTC (permalink / raw)
  To: david@kernel.org, davem@davemloft.net, hch@infradead.org,
	Paolo Abeni, anna@kernel.org, ms@dev.tdt.de,
	alexander.shishkin@linux.intel.com, casey@schaufler-ca.com,
	ebiggers@kernel.org, jack@suse.cz, Ondrej Mosnacek,
	mark.rutland@arm.com, glaubitz@physik.fu-berlin.de,
	miklos@szeredi.hu, sumit.semwal@linaro.org,
	john.johansen@canonical.com, amir73il@gmail.com,
	slava@dubeyko.com, willy@infradead.org, tytso@mit.edu,
	serge@hallyn.com, jth@kernel.org, jolsa@kernel.org,
	shaggy@kernel.org, jaharkes@cs.cmu.edu, willemb@google.com,
	jlayton@kernel.org, ericvh@kernel.org, simona@ffwll.ch,
	trondmy@kernel.org, aivazian.tigran@gmail.com,
	asmadeus@codewreck.org, hubcap@omnibond.com,
	muchun.song@linux.dev, neil@brown.name, sfrench@samba.org,
	jmorris@namei.org, lucho@ionkov.net, jlbec@evilplan.org,
	chuck.lever@oracle.com, mathieu.desnoyers@efficios.com,
	dan.j.williams@intel.com, raven@themaw.net, Alex Markuze,
	peterz@infradead.org, christian.koenig@amd.com, horms@kernel.org,
	mhiramat@kernel.org, alexander.deucher@amd.com, tom@talpey.com,
	mark@fasheh.com, mikulas@artax.karlin.mff.cuni.cz,
	djwong@kernel.org, edumazet@google.com, Olga Kornievskaia,
	bharathsm@microsoft.com, adrian.hunter@intel.com,
	osalvador@suse.de, ronniesahlberg@gmail.com, pc@manguebit.org,
	martin@omnibond.com, naohiro.aota@wdc.com, frank.li@vivo.com,
	dsterba@suse.com, zohar@linux.ibm.com, code@tyhicks.com,
	dwmw2@infradead.org, kuba@kernel.org, kuniyu@google.com,
	nico@fluxnic.net, jack@suse.com, dlemoal@kernel.org,
	viro@zeniv.linux.org.uk, stephen.smalley.work@gmail.com,
	salah.triki@gmail.com, David Howells, paul@paul-moore.com,
	luisbg@kernel.org, acme@kernel.org, richard@nod.at,
	rostedt@goodmis.org, idryomov@gmail.com,
	joseph.qi@linux.alibaba.com, al@alarsen.net,
	james.clark@linaro.org, dmitry.kasatkin@gmail.com,
	roberto.sassu@huawei.com, konishi.ryusuke@gmail.com,
	sprasad@microsoft.com, jaegeuk@kernel.org,
	linux_oss@crudebyte.com, brauner@kernel.org, Dai.Ngo@oracle.com,
	eric.snowberg@oracle.com, adilger.kernel@dilger.ca,
	chao@kernel.org, wufan@kernel.org, irogers@google.com,
	Ingo Molnar, alex.aring@gmail.com, namhyung@kernel.org,
	oleg@redhat.com, chengzhihao1@huawei.com,
	marc.dionne@auristor.com, airlied@gmail.com,
	almaz.alexandrovich@paragon-software.com, coda@cs.cmu.edu
  Cc: ecryptfs@vger.kernel.org, ntfs3@lists.linux.dev,
	linux-unionfs@vger.kernel.org, linux-x25@vger.kernel.org,
	autofs@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	linux-fsdevel@vger.kernel.org, linux-media@vger.kernel.org,
	ocfs2-devel@lists.linux.dev, fsverity@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org,
	linux-integrity@vger.kernel.org, samba-technical@lists.samba.org,
	linux-nilfs@vger.kernel.org, apparmor@lists.ubuntu.com,
	selinux@vger.kernel.org, linaro-mm-sig@lists.linaro.org,
	v9fs@lists.linux.dev, linux-xfs@vger.kernel.org,
	netdev@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, nvdimm@lists.linux.dev,
	ceph-devel@vger.kernel.org, jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, devel@lists.orangefs.org,
	linux-fscrypt@vger.kernel.org, linux-afs@lists.infradead.org,
	linux-security-module@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-hams@vger.kernel.org, linux-nfs@vger.kernel.org,
	codalist@coda.cs.cmu.edu, linux-mm@kvack.org,
	netfs@lists.linux.dev, linux-perf-users@vger.kernel.org,
	dri-devel@lists.freedesktop.org
In-Reply-To: <d8d47ebf099b21bf20f7284837f8164a19590010.camel@kernel.org>

On Thu, 2026-02-26 at 15:06 -0500, Jeff Layton wrote:
> On Thu, 2026-02-26 at 19:46 +0000, Viacheslav Dubeyko wrote:
> > On Thu, 2026-02-26 at 10:55 -0500, Jeff Layton wrote:
> > > Update nilfs2 trace events and filesystem code for u64 i_ino:
> > > 
> > > - Change __field(ino_t, ...) to __field(u64, ...) in trace events
> > > - Update format strings from %lu to %llu
> > > - Cast to (unsigned long long) in TP_printk
> > > 
> > > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > > ---
> > >  fs/nilfs2/alloc.c             | 10 +++++-----
> > >  fs/nilfs2/bmap.c              |  2 +-
> > >  fs/nilfs2/btnode.c            |  2 +-
> > >  fs/nilfs2/btree.c             | 12 ++++++------
> > >  fs/nilfs2/dir.c               | 12 ++++++------
> > >  fs/nilfs2/direct.c            |  4 ++--
> > >  fs/nilfs2/gcinode.c           |  2 +-
> > >  fs/nilfs2/inode.c             |  8 ++++----
> > >  fs/nilfs2/mdt.c               |  2 +-
> > >  fs/nilfs2/namei.c             |  2 +-
> > >  fs/nilfs2/segment.c           |  2 +-
> > >  include/trace/events/nilfs2.h | 12 ++++++------
> > >  12 files changed, 35 insertions(+), 35 deletions(-)
> > > 
> > > diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c
> > > index e7eebb04f9a4080a39f17d4123e58ed7df6b2f4b..7b1cd2baefcf21e54f9260845b02c7c95c148c64 100644
> > > --- a/fs/nilfs2/alloc.c
> > > +++ b/fs/nilfs2/alloc.c
> > > @@ -707,7 +707,7 @@ void nilfs_palloc_commit_free_entry(struct inode *inode,
> > >  
> > >  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
> > >  		nilfs_warn(inode->i_sb,
> > > -			   "%s (ino=%lu): entry number %llu already freed",
> > > +			   "%s (ino=%llu): entry number %llu already freed",
> > >  			   __func__, inode->i_ino,
> > >  			   (unsigned long long)req->pr_entry_nr);
> > >  	else
> > > @@ -748,7 +748,7 @@ void nilfs_palloc_abort_alloc_entry(struct inode *inode,
> > >  
> > >  	if (!nilfs_clear_bit_atomic(lock, group_offset, bitmap))
> > >  		nilfs_warn(inode->i_sb,
> > > -			   "%s (ino=%lu): entry number %llu already freed",
> > > +			   "%s (ino=%llu): entry number %llu already freed",
> > >  			   __func__, inode->i_ino,
> > >  			   (unsigned long long)req->pr_entry_nr);
> > >  	else
> > > @@ -861,7 +861,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> > >  			if (!nilfs_clear_bit_atomic(lock, group_offset,
> > >  						    bitmap)) {
> > >  				nilfs_warn(inode->i_sb,
> > > -					   "%s (ino=%lu): entry number %llu already freed",
> > > +					   "%s (ino=%llu): entry number %llu already freed",
> > >  					   __func__, inode->i_ino,
> > >  					   (unsigned long long)entry_nrs[j]);
> > >  			} else {
> > > @@ -906,7 +906,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> > >  							      last_nrs[k]);
> > >  			if (ret && ret != -ENOENT)
> > >  				nilfs_warn(inode->i_sb,
> > > -					   "error %d deleting block that object (entry=%llu, ino=%lu) belongs to",
> > > +					   "error %d deleting block that object (entry=%llu, ino=%llu) belongs to",
> > >  					   ret, (unsigned long long)last_nrs[k],
> > >  					   inode->i_ino);
> > >  		}
> > > @@ -923,7 +923,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
> > >  			ret = nilfs_palloc_delete_bitmap_block(inode, group);
> > >  			if (ret && ret != -ENOENT)
> > >  				nilfs_warn(inode->i_sb,
> > > -					   "error %d deleting bitmap block of group=%lu, ino=%lu",
> > > +					   "error %d deleting bitmap block of group=%lu, ino=%llu",
> > >  					   ret, group, inode->i_ino);
> > >  		}
> > >  	}
> > > diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
> > > index ccc1a7aa52d2064d56b826058554264c498d592f..824f2bd91c167965ec3a660202b6e6c5f1fe007e 100644
> > > --- a/fs/nilfs2/bmap.c
> > > +++ b/fs/nilfs2/bmap.c
> > > @@ -33,7 +33,7 @@ static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap,
> > >  
> > >  	if (err == -EINVAL) {
> > >  		__nilfs_error(inode->i_sb, fname,
> > > -			      "broken bmap (inode number=%lu)", inode->i_ino);
> > > +			      "broken bmap (inode number=%llu)", inode->i_ino);
> > >  		err = -EIO;
> > >  	}
> > >  	return err;
> > > diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c
> > > index 56836712909201775907483887e8a0022851bbec..2e553d698d0f3980de98fced415dfd819ddbca0a 100644
> > > --- a/fs/nilfs2/btnode.c
> > > +++ b/fs/nilfs2/btnode.c
> > > @@ -64,7 +64,7 @@ nilfs_btnode_create_block(struct address_space *btnc, __u64 blocknr)
> > >  		 * clearing of an abandoned b-tree node is missing somewhere).
> > >  		 */
> > >  		nilfs_error(inode->i_sb,
> > > -			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%lu)",
> > > +			    "state inconsistency probably due to duplicate use of b-tree node block address %llu (ino=%llu)",
> > >  			    (unsigned long long)blocknr, inode->i_ino);
> > >  		goto failed;
> > >  	}
> > > diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
> > > index dd0c8e560ef6a2c96515025321914e0d73f41144..3c03f5a741d144d22d1ffb5acf43a035e88c00dc 100644
> > > --- a/fs/nilfs2/btree.c
> > > +++ b/fs/nilfs2/btree.c
> > > @@ -353,7 +353,7 @@ static int nilfs_btree_node_broken(const struct nilfs_btree_node *node,
> > >  		     nchildren <= 0 ||
> > >  		     nchildren > NILFS_BTREE_NODE_NCHILDREN_MAX(size))) {
> > >  		nilfs_crit(inode->i_sb,
> > > -			   "bad btree node (ino=%lu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
> > > +			   "bad btree node (ino=%llu, blocknr=%llu): level = %d, flags = 0x%x, nchildren = %d",
> > >  			   inode->i_ino, (unsigned long long)blocknr, level,
> > >  			   flags, nchildren);
> > >  		ret = 1;
> > > @@ -384,7 +384,7 @@ static int nilfs_btree_root_broken(const struct nilfs_btree_node *node,
> > >  		     nchildren > NILFS_BTREE_ROOT_NCHILDREN_MAX ||
> > >  		     (nchildren == 0 && level > NILFS_BTREE_LEVEL_NODE_MIN))) {
> > >  		nilfs_crit(inode->i_sb,
> > > -			   "bad btree root (ino=%lu): level = %d, flags = 0x%x, nchildren = %d",
> > > +			   "bad btree root (ino=%llu): level = %d, flags = 0x%x, nchildren = %d",
> > >  			   inode->i_ino, level, flags, nchildren);
> > >  		ret = 1;
> > >  	}
> > > @@ -453,7 +453,7 @@ static int nilfs_btree_bad_node(const struct nilfs_bmap *btree,
> > >  	if (unlikely(nilfs_btree_node_get_level(node) != level)) {
> > >  		dump_stack();
> > >  		nilfs_crit(btree->b_inode->i_sb,
> > > -			   "btree level mismatch (ino=%lu): %d != %d",
> > > +			   "btree level mismatch (ino=%llu): %d != %d",
> > >  			   btree->b_inode->i_ino,
> > >  			   nilfs_btree_node_get_level(node), level);
> > >  		return 1;
> > > @@ -521,7 +521,7 @@ static int __nilfs_btree_get_block(const struct nilfs_bmap *btree, __u64 ptr,
> > >   out_no_wait:
> > >  	if (!buffer_uptodate(bh)) {
> > >  		nilfs_err(btree->b_inode->i_sb,
> > > -			  "I/O error reading b-tree node block (ino=%lu, blocknr=%llu)",
> > > +			  "I/O error reading b-tree node block (ino=%llu, blocknr=%llu)",
> > >  			  btree->b_inode->i_ino, (unsigned long long)ptr);
> > >  		brelse(bh);
> > >  		return -EIO;
> > > @@ -2104,7 +2104,7 @@ static int nilfs_btree_propagate(struct nilfs_bmap *btree,
> > >  	if (ret < 0) {
> > >  		if (unlikely(ret == -ENOENT)) {
> > >  			nilfs_crit(btree->b_inode->i_sb,
> > > -				   "writing node/leaf block does not appear in b-tree (ino=%lu) at key=%llu, level=%d",
> > > +				   "writing node/leaf block does not appear in b-tree (ino=%llu) at key=%llu, level=%d",
> > >  				   btree->b_inode->i_ino,
> > >  				   (unsigned long long)key, level);
> > >  			ret = -EINVAL;
> > > @@ -2146,7 +2146,7 @@ static void nilfs_btree_add_dirty_buffer(struct nilfs_bmap *btree,
> > >  	    level >= NILFS_BTREE_LEVEL_MAX) {
> > >  		dump_stack();
> > >  		nilfs_warn(btree->b_inode->i_sb,
> > > -			   "invalid btree level: %d (key=%llu, ino=%lu, blocknr=%llu)",
> > > +			   "invalid btree level: %d (key=%llu, ino=%llu, blocknr=%llu)",
> > >  			   level, (unsigned long long)key,
> > >  			   btree->b_inode->i_ino,
> > >  			   (unsigned long long)bh->b_blocknr);
> > > diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
> > > index b243199036dfa1ab2299efaaa5bdf5da2d159ff2..3653db5cdb65137d1e660bb509c14ec4cbc8840b 100644
> > > --- a/fs/nilfs2/dir.c
> > > +++ b/fs/nilfs2/dir.c
> > > @@ -150,7 +150,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> > >  
> > >  Ebadsize:
> > >  	nilfs_error(sb,
> > > -		    "size of directory #%lu is not a multiple of chunk size",
> > > +		    "size of directory #%llu is not a multiple of chunk size",
> > >  		    dir->i_ino);
> > >  	goto fail;
> > >  Eshort:
> > > @@ -169,7 +169,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> > >  	error = "disallowed inode number";
> > >  bad_entry:
> > >  	nilfs_error(sb,
> > > -		    "bad entry in directory #%lu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",
> > > +		    "bad entry in directory #%llu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d",
> > 
> > I think you missed 'inode=%lu' here. 
> 
> That is actually the placeholder for this:
> 
>     (unsigned long)le64_to_cpu(p->inode)
> 
> ...which is not inode->i_ino. I do agree that the cast probably no
> longer makes sense with this change, but I'd probably leave that to a
> later cleanup so we can keep this set focused on the i_ino change.

I see your point. Makes sense. The rest looks good.

Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>

Thanks,
Slava.

> 
> 
> > >  		    dir->i_ino, error, (folio->index << PAGE_SHIFT) + offs,
> > >  		    (unsigned long)le64_to_cpu(p->inode),
> > >  		    rec_len, p->name_len);
> > > @@ -177,7 +177,7 @@ static bool nilfs_check_folio(struct folio *folio, char *kaddr)
> > >  Eend:
> > >  	p = (struct nilfs_dir_entry *)(kaddr + offs);
> > >  	nilfs_error(sb,
> > > -		    "entry in directory #%lu spans the page boundary offset=%lu, inode=%lu",
> > > +		    "entry in directory #%llu spans the page boundary offset=%lu, inode=%lu",
> > 
> > Ditto. You missed 'inode=%lu' here.
> > 
> > 
> 
> Same here.
> 
> > >  		    dir->i_ino, (folio->index << PAGE_SHIFT) + offs,
> > >  		    (unsigned long)le64_to_cpu(p->inode));
> > >  fail:
> > > @@ -251,7 +251,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
> > >  
> > >  		kaddr = nilfs_get_folio(inode, n, &folio);
> > >  		if (IS_ERR(kaddr)) {
> > > -			nilfs_error(sb, "bad page in #%lu", inode->i_ino);
> > > +			nilfs_error(sb, "bad page in #%llu", inode->i_ino);
> > >  			ctx->pos += PAGE_SIZE - offset;
> > >  			return -EIO;
> > >  		}
> > > @@ -336,7 +336,7 @@ struct nilfs_dir_entry *nilfs_find_entry(struct inode *dir,
> > >  		/* next folio is past the blocks we've got */
> > >  		if (unlikely(n > (dir->i_blocks >> (PAGE_SHIFT - 9)))) {
> > >  			nilfs_error(dir->i_sb,
> > > -			       "dir %lu size %lld exceeds block count %llu",
> > > +			       "dir %llu size %lld exceeds block count %llu",
> > >  			       dir->i_ino, dir->i_size,
> > >  			       (unsigned long long)dir->i_blocks);
> > >  			goto out;
> > > @@ -382,7 +382,7 @@ struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct folio **foliop)
> > >  	return next_de;
> > >  
> > >  fail:
> > > -	nilfs_error(dir->i_sb, "directory #%lu %s", dir->i_ino, msg);
> > > +	nilfs_error(dir->i_sb, "directory #%llu %s", dir->i_ino, msg);
> > >  	folio_release_kmap(folio, de);
> > >  	return NULL;
> > >  }
> > > diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c
> > > index 2d8dc6b35b5477947ca12a70288d3a3cce858aab..8bd0b1374e25f8ff510f3b36dbde2acc01aafc1e 100644
> > > --- a/fs/nilfs2/direct.c
> > > +++ b/fs/nilfs2/direct.c
> > > @@ -338,7 +338,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
> > >  	key = nilfs_bmap_data_get_key(bmap, *bh);
> > >  	if (unlikely(key > NILFS_DIRECT_KEY_MAX)) {
> > >  		nilfs_crit(bmap->b_inode->i_sb,
> > > -			   "%s (ino=%lu): invalid key: %llu",
> > > +			   "%s (ino=%llu): invalid key: %llu",
> > >  			   __func__,
> > >  			   bmap->b_inode->i_ino, (unsigned long long)key);
> > >  		return -EINVAL;
> > > @@ -346,7 +346,7 @@ static int nilfs_direct_assign(struct nilfs_bmap *bmap,
> > >  	ptr = nilfs_direct_get_ptr(bmap, key);
> > >  	if (unlikely(ptr == NILFS_BMAP_INVALID_PTR)) {
> > >  		nilfs_crit(bmap->b_inode->i_sb,
> > > -			   "%s (ino=%lu): invalid pointer: %llu",
> > > +			   "%s (ino=%llu): invalid pointer: %llu",
> > >  			   __func__,
> > >  			   bmap->b_inode->i_ino, (unsigned long long)ptr);
> > >  		return -EINVAL;
> > > diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c
> > > index 561c220799c7aee879ad866865e377799c8ee6bb..62d4c1b787e95c961a360a4214d621d564ad8b4c 100644
> > > --- a/fs/nilfs2/gcinode.c
> > > +++ b/fs/nilfs2/gcinode.c
> > > @@ -137,7 +137,7 @@ int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
> > >  		struct inode *inode = bh->b_folio->mapping->host;
> > >  
> > >  		nilfs_err(inode->i_sb,
> > > -			  "I/O error reading %s block for GC (ino=%lu, vblocknr=%llu)",
> > > +			  "I/O error reading %s block for GC (ino=%llu, vblocknr=%llu)",
> > >  			  buffer_nilfs_node(bh) ? "node" : "data",
> > >  			  inode->i_ino, (unsigned long long)bh->b_blocknr);
> > >  		return -EIO;
> > > diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
> > > index 51bde45d586509dda3ef0cb7c46facb7fb2c61dd..51f7e125a311b868860e3e111700d49d4cb98fa6 100644
> > > --- a/fs/nilfs2/inode.c
> > > +++ b/fs/nilfs2/inode.c
> > > @@ -108,7 +108,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff,
> > >  				 * be locked in this case.
> > >  				 */
> > >  				nilfs_warn(inode->i_sb,
> > > -					   "%s (ino=%lu): a race condition while inserting a data block at offset=%llu",
> > > +					   "%s (ino=%llu): a race condition while inserting a data block at offset=%llu",
> > >  					   __func__, inode->i_ino,
> > >  					   (unsigned long long)blkoff);
> > >  				err = -EAGAIN;
> > > @@ -789,7 +789,7 @@ static void nilfs_truncate_bmap(struct nilfs_inode_info *ii,
> > >  		goto repeat;
> > >  
> > >  failed:
> > > -	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%lu)",
> > > +	nilfs_warn(ii->vfs_inode.i_sb, "error %d truncating bmap (ino=%llu)",
> > >  		   ret, ii->vfs_inode.i_ino);
> > >  }
> > >  
> > > @@ -1026,7 +1026,7 @@ int nilfs_set_file_dirty(struct inode *inode, unsigned int nr_dirty)
> > >  			 * this inode.
> > >  			 */
> > >  			nilfs_warn(inode->i_sb,
> > > -				   "cannot set file dirty (ino=%lu): the file is being freed",
> > > +				   "cannot set file dirty (ino=%llu): the file is being freed",
> > >  				   inode->i_ino);
> > >  			spin_unlock(&nilfs->ns_inode_lock);
> > >  			return -EINVAL; /*
> > > @@ -1057,7 +1057,7 @@ int __nilfs_mark_inode_dirty(struct inode *inode, int flags)
> > >  	err = nilfs_load_inode_block(inode, &ibh);
> > >  	if (unlikely(err)) {
> > >  		nilfs_warn(inode->i_sb,
> > > -			   "cannot mark inode dirty (ino=%lu): error %d loading inode block",
> > > +			   "cannot mark inode dirty (ino=%llu): error %d loading inode block",
> > >  			   inode->i_ino, err);
> > >  		return err;
> > >  	}
> > > diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
> > > index 946b0d3534a5f22f34ac44a91fb121541881c548..09adb40c65e505d92012a3d2f5fe8a5696e10056 100644
> > > --- a/fs/nilfs2/mdt.c
> > > +++ b/fs/nilfs2/mdt.c
> > > @@ -203,7 +203,7 @@ static int nilfs_mdt_read_block(struct inode *inode, unsigned long block,
> > >  	err = -EIO;
> > >  	if (!buffer_uptodate(first_bh)) {
> > >  		nilfs_err(inode->i_sb,
> > > -			  "I/O error reading meta-data file (ino=%lu, block-offset=%lu)",
> > > +			  "I/O error reading meta-data file (ino=%llu, block-offset=%lu)",
> > >  			  inode->i_ino, block);
> > >  		goto failed_bh;
> > >  	}
> > > diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c
> > > index 40f4b1a28705b6e0eb8f0978cf3ac18b43aa1331..40ac679ec56e400b1df98e9be6fe9ca338a9ba51 100644
> > > --- a/fs/nilfs2/namei.c
> > > +++ b/fs/nilfs2/namei.c
> > > @@ -292,7 +292,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry)
> > >  
> > >  	if (!inode->i_nlink) {
> > >  		nilfs_warn(inode->i_sb,
> > > -			   "deleting nonexistent file (ino=%lu), %d",
> > > +			   "deleting nonexistent file (ino=%llu), %d",
> > >  			   inode->i_ino, inode->i_nlink);
> > >  		set_nlink(inode, 1);
> > >  	}
> > > diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
> > > index 098a3bd103e04cd09b0689fe2017380d74664496..4b1bf559f3524b1cc3965dae9fd3e5745718569d 100644
> > > --- a/fs/nilfs2/segment.c
> > > +++ b/fs/nilfs2/segment.c
> > > @@ -2024,7 +2024,7 @@ static int nilfs_segctor_collect_dirty_files(struct nilfs_sc_info *sci,
> > >  				ifile, ii->vfs_inode.i_ino, &ibh);
> > >  			if (unlikely(err)) {
> > >  				nilfs_warn(sci->sc_super,
> > > -					   "log writer: error %d getting inode block (ino=%lu)",
> > > +					   "log writer: error %d getting inode block (ino=%llu)",
> > >  					   err, ii->vfs_inode.i_ino);
> > >  				return err;
> > >  			}
> > > diff --git a/include/trace/events/nilfs2.h b/include/trace/events/nilfs2.h
> > > index 8880c11733dd307c223cc62ee34ebeff650ecb12..86a0011c9eeaf031cfa0b79875b2b106ef8b7cfd 100644
> > > --- a/include/trace/events/nilfs2.h
> > > +++ b/include/trace/events/nilfs2.h
> > > @@ -165,14 +165,14 @@ TRACE_EVENT(nilfs2_segment_usage_freed,
> > >  
> > >  TRACE_EVENT(nilfs2_mdt_insert_new_block,
> > >  	    TP_PROTO(struct inode *inode,
> > > -		     unsigned long ino,
> > > +		     u64 ino,
> > >  		     unsigned long block),
> > >  
> > >  	    TP_ARGS(inode, ino, block),
> > >  
> > >  	    TP_STRUCT__entry(
> > >  		    __field(struct inode *, inode)
> > > -		    __field(unsigned long, ino)
> > > +		    __field(u64, ino)
> > >  		    __field(unsigned long, block)
> > >  	    ),
> > >  
> > > @@ -182,7 +182,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
> > >  		    __entry->block = block;
> > >  		    ),
> > >  
> > > -	    TP_printk("inode = %p ino = %lu block = %lu",
> > > +	    TP_printk("inode = %p ino = %llu block = %lu",
> > >  		      __entry->inode,
> > >  		      __entry->ino,
> > >  		      __entry->block)
> > > @@ -190,7 +190,7 @@ TRACE_EVENT(nilfs2_mdt_insert_new_block,
> > >  
> > >  TRACE_EVENT(nilfs2_mdt_submit_block,
> > >  	    TP_PROTO(struct inode *inode,
> > > -		     unsigned long ino,
> > > +		     u64 ino,
> > >  		     unsigned long blkoff,
> > >  		     enum req_op mode),
> > >  
> > > @@ -198,7 +198,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
> > >  
> > >  	    TP_STRUCT__entry(
> > >  		    __field(struct inode *, inode)
> > > -		    __field(unsigned long, ino)
> > > +		    __field(u64, ino)
> > >  		    __field(unsigned long, blkoff)
> > >  		    /*
> > >  		     * Use field_struct() to avoid is_signed_type() on the
> > > @@ -214,7 +214,7 @@ TRACE_EVENT(nilfs2_mdt_submit_block,
> > >  		    __entry->mode = mode;
> > >  		    ),
> > >  
> > > -	    TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x",
> > > +	    TP_printk("inode = %p ino = %llu blkoff = %lu mode = %x",
> > >  		      __entry->inode,
> > >  		      __entry->ino,
> > >  		      __entry->blkoff,

^ permalink raw reply

* Re: [PATCH 47/61] ubifs: update format strings for u64 i_ino
From: Richard Weinberger @ 2026-02-26 21:06 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Al Viro, Christian Brauner, Jan Kara, Steven Rostedt, mhiramat,
	Mathieu Desnoyers, dan j williams, Matthew Wilcox, Eric Biggers,
	tytso, Muchun Song, Oscar Salvador, David Hildenbrand,
	David Howells, Paulo Alcantara, Andreas Dilger, Jan Kara,
	Jaegeuk Kim, Chao Yu, Trond Myklebust, anna, chuck lever,
	NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey, Steve French,
	Ronnie Sahlberg, Shyam, Bharath SM, Alexander Aring,
	Ryusuke Konishi, Viacheslav Dubeyko, Eric Van Hensbergen,
	Latchesar Ionkov, Dominique Martinet, Christian Schoenebeck,
	David Sterba, Marc Dionne, raven, Luis de Bethencourt,
	Salah Triki, Tigran A. Aivazian, Ilya Dryomov, Alex Markuze,
	Jan Harkes, coda, Nicolas Pitre, Tyler Hicks, Amir Goldstein,
	Christoph Hellwig, John Paul Adrian Glaubitz, Yangtao Li,
	Mikulas Patocka, David Woodhouse, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	chengzhihao1, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, sumit semwal,
	edumazet, Kuniyuki Iwashima, pabeni, Willem de Bruijn, davem,
	kuba, Simon Horman, oleg, Peter Zijlstra, mingo,
	Arnaldo Carvalho de Melo, Namhyung Kim, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Ian Rogers, Adrian Hunter,
	James Clark, Darrick J. Wong, Martin Schiller, linux-fsdevel,
	linux-kernel, linux-trace-kernel, nvdimm, fsverity, linux-mm,
	netfs, linux-ext4, linux-f2fs-devel, linux-nfs, linux-cifs,
	samba-technical, linux-nilfs, v9fs, linux-afs, autofs, ceph-devel,
	codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3, ocfs2-devel,
	devel, linux-unionfs, apparmor, LSM, linux-integrity, selinux,
	amd-gfx, DRI mailing list, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-47-ccceff366db9@kernel.org>

----- Ursprüngliche Mail -----
> Von: "Jeff Layton" <jlayton@kernel.org>
> Update format strings and local variable types in ubifs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> fs/ubifs/debug.c   |  8 ++++----
> fs/ubifs/dir.c     | 28 ++++++++++++++--------------
> fs/ubifs/file.c    | 28 ++++++++++++++--------------
> fs/ubifs/journal.c |  6 +++---
> fs/ubifs/super.c   | 16 ++++++++--------
> fs/ubifs/tnc.c     |  4 ++--
> fs/ubifs/xattr.c   | 14 +++++++-------
> 7 files changed, 52 insertions(+), 52 deletions(-)

Acked-by: Richard Weinberger <richard@nod.at>

Thanks,
//richard

^ permalink raw reply

* Re: [PATCH 37/61] jffs2: update format strings for u64 i_ino
From: Richard Weinberger @ 2026-02-26 21:06 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Al Viro, Christian Brauner, Jan Kara, Steven Rostedt, mhiramat,
	Mathieu Desnoyers, dan j williams, Matthew Wilcox, Eric Biggers,
	tytso, Muchun Song, Oscar Salvador, David Hildenbrand,
	David Howells, Paulo Alcantara, Andreas Dilger, Jan Kara,
	Jaegeuk Kim, Chao Yu, Trond Myklebust, anna, chuck lever,
	NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey, Steve French,
	Ronnie Sahlberg, Shyam, Bharath SM, Alexander Aring,
	Ryusuke Konishi, Viacheslav Dubeyko, Eric Van Hensbergen,
	Latchesar Ionkov, Dominique Martinet, Christian Schoenebeck,
	David Sterba, Marc Dionne, raven, Luis de Bethencourt,
	Salah Triki, Tigran A. Aivazian, Ilya Dryomov, Alex Markuze,
	Jan Harkes, coda, Nicolas Pitre, Tyler Hicks, Amir Goldstein,
	Christoph Hellwig, John Paul Adrian Glaubitz, Yangtao Li,
	Mikulas Patocka, David Woodhouse, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	chengzhihao1, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, Paul Moore, James Morris, Serge E. Hallyn,
	Mimi Zohar, Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, sumit semwal,
	edumazet, Kuniyuki Iwashima, pabeni, Willem de Bruijn, davem,
	kuba, Simon Horman, oleg, Peter Zijlstra, mingo,
	Arnaldo Carvalho de Melo, Namhyung Kim, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Ian Rogers, Adrian Hunter,
	James Clark, Darrick J. Wong, Martin Schiller, linux-fsdevel,
	linux-kernel, linux-trace-kernel, nvdimm, fsverity, linux-mm,
	netfs, linux-ext4, linux-f2fs-devel, linux-nfs, linux-cifs,
	samba-technical, linux-nilfs, v9fs, linux-afs, autofs, ceph-devel,
	codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3, ocfs2-devel,
	devel, linux-unionfs, apparmor, LSM, linux-integrity, selinux,
	amd-gfx, DRI mailing list, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-37-ccceff366db9@kernel.org>

----- Ursprüngliche Mail -----
> Von: "Jeff Layton" <jlayton@kernel.org>
> Update format strings and local variable types in jffs2 for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> fs/jffs2/dir.c  |  4 ++--
> fs/jffs2/file.c |  4 ++--
> fs/jffs2/fs.c   | 18 +++++++++---------
> 3 files changed, 13 insertions(+), 13 deletions(-)

Acked-by: Richard Weinberger <richard@nod.at>

Thanks,
//richard

^ permalink raw reply

* Re: [PATCH 51/61] security: update audit format strings for u64 i_ino
From: Paul Moore @ 2026-02-26 21:11 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Alexander Viro, Christian Brauner, Jan Kara, Steven Rostedt,
	Masami Hiramatsu, Mathieu Desnoyers, Dan Williams, Matthew Wilcox,
	Eric Biggers, Theodore Y. Ts'o, Muchun Song, Oscar Salvador,
	David Hildenbrand, David Howells, Paulo Alcantara, Andreas Dilger,
	Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust, Anna Schumaker,
	Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey,
	Steve French, Ronnie Sahlberg, Shyam Prasad N, Bharath SM,
	Alexander Aring, Ryusuke Konishi, Viacheslav Dubeyko,
	Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, David Sterba, Marc Dionne, Ian Kent,
	Luis de Bethencourt, Salah Triki, Tigran A. Aivazian,
	Ilya Dryomov, Alex Markuze, Jan Harkes, coda, Nicolas Pitre,
	Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Damien Le Moal, Naohiro Aota, Johannes Thumshirn,
	John Johansen, James Morris, Serge E. Hallyn, Mimi Zohar,
	Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller, linux-fsdevel, linux-kernel, linux-trace-kernel,
	nvdimm, fsverity, linux-mm, netfs, linux-ext4, linux-f2fs-devel,
	linux-nfs, linux-cifs, samba-technical, linux-nilfs, v9fs,
	linux-afs, autofs, ceph-devel, codalist, ecryptfs, linux-mtd,
	jfs-discussion, ntfs3, ocfs2-devel, devel, linux-unionfs,
	apparmor, linux-security-module, linux-integrity, selinux,
	amd-gfx, dri-devel, linux-media, linaro-mm-sig, netdev,
	linux-perf-users, linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-51-ccceff366db9@kernel.org>

On Thu, Feb 26, 2026 at 11:06 AM Jeff Layton <jlayton@kernel.org> wrote:
>
> Update %lu/%ld to %llu/%lld in security audit logging functions that
> print inode->i_ino, since i_ino is now u64.
>
> Files updated: apparmor/apparmorfs.c, integrity/integrity_audit.c,
> ipe/audit.c, lsm_audit.c.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  security/apparmor/apparmorfs.c       |  4 ++--
>  security/integrity/integrity_audit.c |  2 +-
>  security/ipe/audit.c                 |  2 +-
>  security/lsm_audit.c                 | 10 +++++-----
>  security/selinux/hooks.c             |  4 ++--
>  security/smack/smack_lsm.c           | 12 ++++++------
>  6 files changed, 17 insertions(+), 17 deletions(-)

...

> diff --git a/security/lsm_audit.c b/security/lsm_audit.c
> index 7d623b00495c14b079e10e963c21a9f949c11f07..737f5a263a8f79416133315edf363ece3d79c722 100644
> --- a/security/lsm_audit.c
> +++ b/security/lsm_audit.c

Everything in security/lsm_audit.c looks okay.

> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
> index d8224ea113d1ac273aac1fb52324f00b3301ae75..150ea86ebc1f7c7f8391af4109a3da82b12d00d2 100644
> --- a/security/selinux/hooks.c
> +++ b/security/selinux/hooks.c
> @@ -1400,7 +1400,7 @@ static int inode_doinit_use_xattr(struct inode *inode, struct dentry *dentry,
>         if (rc < 0) {
>                 kfree(context);
>                 if (rc != -ENODATA) {
> -                       pr_warn("SELinux: %s:  getxattr returned %d for dev=%s ino=%ld\n",
> +                       pr_warn("SELinux: %s:  getxattr returned %d for dev=%s ino=%lld\n",
>                                 __func__, -rc, inode->i_sb->s_id, inode->i_ino);
>                         return rc;
>                 }

Additionally, later in this function there are pr_notice_ratelimited()
and pr_warn() calls that print inode numbers and need to be updated.

-- 
paul-moore.com

^ permalink raw reply

* Re: [PATCH 50/61] zonefs: update format strings for u64 i_ino
From: Damien Le Moal @ 2026-02-26 22:45 UTC (permalink / raw)
  To: Jeff Layton, Alexander Viro, Christian Brauner, Jan Kara,
	Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dan Williams,
	Matthew Wilcox, Eric Biggers, Theodore Y. Ts'o, Muchun Song,
	Oscar Salvador, David Hildenbrand, David Howells, Paulo Alcantara,
	Andreas Dilger, Jan Kara, Jaegeuk Kim, Chao Yu, Trond Myklebust,
	Anna Schumaker, Chuck Lever, NeilBrown, Olga Kornievskaia,
	Dai Ngo, Tom Talpey, Steve French, Ronnie Sahlberg,
	Shyam Prasad N, Bharath SM, Alexander Aring, Ryusuke Konishi,
	Viacheslav Dubeyko, Eric Van Hensbergen, Latchesar Ionkov,
	Dominique Martinet, Christian Schoenebeck, David Sterba,
	Marc Dionne, Ian Kent, Luis de Bethencourt, Salah Triki,
	Tigran A. Aivazian, Ilya Dryomov, Alex Markuze, Jan Harkes, coda,
	Nicolas Pitre, Tyler Hicks, Amir Goldstein, Christoph Hellwig,
	John Paul Adrian Glaubitz, Yangtao Li, Mikulas Patocka,
	David Woodhouse, Richard Weinberger, Dave Kleikamp,
	Konstantin Komarov, Mark Fasheh, Joel Becker, Joseph Qi,
	Mike Marshall, Martin Brandenburg, Miklos Szeredi, Anders Larsen,
	Zhihao Cheng, Naohiro Aota, Johannes Thumshirn, John Johansen,
	Paul Moore, James Morris, Serge E. Hallyn, Mimi Zohar,
	Roberto Sassu, Dmitry Kasatkin, Eric Snowberg, Fan Wu,
	Stephen Smalley, Ondrej Mosnacek, Casey Schaufler, Alex Deucher,
	Christian König, David Airlie, Simona Vetter, Sumit Semwal,
	Eric Dumazet, Kuniyuki Iwashima, Paolo Abeni, Willem de Bruijn,
	David S. Miller, Jakub Kicinski, Simon Horman, Oleg Nesterov,
	Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark, Darrick J. Wong,
	Martin Schiller
  Cc: linux-fsdevel, linux-kernel, linux-trace-kernel, nvdimm, fsverity,
	linux-mm, netfs, linux-ext4, linux-f2fs-devel, linux-nfs,
	linux-cifs, samba-technical, linux-nilfs, v9fs, linux-afs, autofs,
	ceph-devel, codalist, ecryptfs, linux-mtd, jfs-discussion, ntfs3,
	ocfs2-devel, devel, linux-unionfs, apparmor,
	linux-security-module, linux-integrity, selinux, amd-gfx,
	dri-devel, linux-media, linaro-mm-sig, netdev, linux-perf-users,
	linux-fscrypt, linux-xfs, linux-hams, linux-x25
In-Reply-To: <20260226-iino-u64-v1-50-ccceff366db9@kernel.org>

On 2/27/26 00:55, Jeff Layton wrote:
> Update format strings and local variable types in zonefs for the
> i_ino type change from unsigned long to u64.
> 
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

Acked-by: Damien Le Moal <dlemoal@kernel.org>

-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox