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

Mark Brown posted 1 patch 4 weeks, 1 day ago
|                                                    |
linux-next: build failure after merge of the vfs tree
Posted by Mark Brown 4 weeks, 1 day ago
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 <broonie@kernel.org>
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 <broonie@kernel.org>

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;
 
Re: linux-next: build failure after merge of the vfs tree
Posted by Namjae Jeon 4 weeks, 1 day ago
On Tue, Mar 10, 2026 at 10:21 PM Mark Brown <broonie@kernel.org> wrote:
>
> Hi all,
Hi Mark,
>
> 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 <broonie@kernel.org>
> 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 <broonie@kernel.org>
>
> 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;
Looks good to me:)
Thanks for fixing it up and carrying the patch!