Subject: linux-next: build failure after merge of the vfs tree

From: Mark Brown <[email-masked]>
Date: Tue, 10 Mar 2026 13:21:01 +0000

Hi all,

After merging the vfs tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

/tmp/next/build/fs/ntfs/mft.c: In function 'ntfs_may_write_mft_record':
/tmp/next/build/fs/ntfs/mft.c:773:52: error: passing argument 3 of 'find_inode_nowait' from incompatible pointer type [-Wincompatible-pointer-types]
  773 |                 vi = find_inode_nowait(sb, mft_no, ntfs_test_inode_wb, &na);
      |                                                    ^~~~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    int (*)(struct inode *, long unsigned int,  void *)
In file included from /tmp/next/build/include/linux/writeback.h:10,
                 from /tmp/next/build/fs/ntfs/mft.c:11:
/tmp/next/build/include/linux/fs.h:2955:39: note: expected 'int (*)(struct inode *, u64,  void *)' {aka 'int (*)(struct inode *, long long unsigned int,  void *)'} but argument is of type 'int (*)(struct inode *, long unsigned int,  void *)'
 2955 |                                 int (*match)(struct inode *, u64, void *),
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/next/build/fs/ntfs/mft.c:836:52: error: passing argument 3 of 'find_inode_nowait' from incompatible pointer type [-Wincompatible-pointer-types]
  836 |                 vi = find_inode_nowait(sb, mft_no, ntfs_test_inode_wb, &na);
      |                                                    ^~~~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    int (*)(struct inode *, long unsigned int,  void *)
/tmp/next/build/include/linux/fs.h:2955:39: note: expected 'int (*)(struct inode *, u64,  void *)' {aka 'int (*)(struct inode *, long long unsigned int,  void *)'} but argument is of type 'int (*)(struct inode *, long unsigned int,  void *)'
 2955 |                                 int (*match)(struct inode *, u64, void *),
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

   0b2600f81cefc (treewide: change inode->i_ino from unsigned long to u64)

interacting with the addition of the ntfs tree.  I have fixed this up as
below and can carry as needed:

commit d1b19b9f221c93e8fd0f43b80509ba1660e25cf9
Author: Mark Brown <[email-masked]>
Date:   Tue Mar 10 12:33:15 2026 +0000

    ntfs: Fixup merge issue with vfs.all changes
    
    /tmp/next/build/fs/ntfs/mft.c: In function 'ntfs_may_write_mft_record':
    /tmp/next/build/fs/ntfs/mft.c:773:52: error: passing argument 3 of 'find_inode_nowait' from incompatible pointer type [-Wincompatible-pointer-types]
      773 |                 vi = find_inode_nowait(sb, mft_no, ntfs_test_inode_wb, &na);
          |                                                    ^~~~~~~~~~~~~~~~~~
          |                                                    |
          |                                                    int (*)(struct inode *, long unsigned int,  void *)
    In file included from /tmp/next/build/include/linux/writeback.h:10,
                     from /tmp/next/build/fs/ntfs/mft.c:11:
    /tmp/next/build/include/linux/fs.h:2955:39: note: expected 'int (*)(struct inode *, u64,  void *)' {aka 'int (*)(struct inode *, long long unsigned int,  void *)'} but argument is of type 'int (*)(struct inode *, long unsigned int,  void *)'
     2955 |                                 int (*match)(struct inode *, u64, void *),
          |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /tmp/next/build/fs/ntfs/mft.c:836:52: error: passing argument 3 of 'find_inode_nowait' from incompatible pointer type [-Wincompatible-pointer-types]
      836 |                 vi = find_inode_nowait(sb, mft_no, ntfs_test_inode_wb, &na);
          |                                                    ^~~~~~~~~~~~~~~~~~
          |                                                    |
          |                                                    int (*)(struct inode *, long unsigned int,  void *)
    /tmp/next/build/include/linux/fs.h:2955:39: note: expected 'int (*)(struct inode *, u64,  void *)' {aka 'int (*)(struct inode *, long long unsigned int,  void *)'} but argument is of type 'int (*)(struct inode *, long unsigned int,  void *)'
     2955 |                                 int (*match)(struct inode *, u64, void *),
          |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Signed-off-by: Mark Brown <[email-masked]>

diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c
index 48e64eaa7ec33..0c3f8d9b7c3a4 100644
--- a/fs/ntfs/mft.c
+++ b/fs/ntfs/mft.c
@@ -632,7 +632,7 @@ int write_mft_record_nolock(struct ntfs_inode *ni, struct mft_record *m, int syn
 	return err;
 }
 
-static int ntfs_test_inode_wb(struct inode *vi, unsigned long ino, void *data)
+static int ntfs_test_inode_wb(struct inode *vi, u64 ino, void *data)
 {
 	struct ntfs_attr *na = data;