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

From: Stephen Rothwell <[email-masked]>
Date: Fri, 3 Sep 2021 09:03:07 +1000

Hi all,

On Thu, 19 Aug 2021 09:39:10 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> After merging the overlayfs tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> fs/ntfs3/file.c:1231:13: error: initialization of 'struct posix_acl * (*)(struct inode *, int,  bool)' {aka 'struct posix_acl * (*)(struct inode *, int,  _Bool)'} from incompatible pointer type 'struct posix_acl * (*)(struct inode *, int)' [-Werror=incompatible-pointer-types]
>  1231 |  .get_acl = ntfs_get_acl,
>       |             ^~~~~~~~~~~~
> fs/ntfs3/file.c:1231:13: note: (near initialization for 'ntfs_file_inode_operations.get_acl')
> 
> Caused by commit
> 
>   0cad6246621b ("vfs: add rcu argument to ->get_acl() callback")
> 
> interacting with commits
> 
>   4534a70b7056 ("fs/ntfs3: Add headers and misc files")
>   82cae269cfa9 ("fs/ntfs3: Add initialization of super block")
>   4342306f0f0d ("fs/ntfs3: Add file operations and implementation")
> 
> from the ntfs3 tree.
> 
> I have added the following merge resolution patch.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Thu, 19 Aug 2021 09:31:21 +1000
> Subject: [PATCH] ntfs3: fix up for "vfs: add rcu argument to ->get_acl() callback"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  fs/ntfs3/ntfs_fs.h | 2 +-
>  fs/ntfs3/xattr.c   | 7 +++++--
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
> index 0c3ac89c3115..a0655b8b7be1 100644
> --- a/fs/ntfs3/ntfs_fs.h
> +++ b/fs/ntfs3/ntfs_fs.h
> @@ -787,7 +787,7 @@ int ntfs_cmp_names_cpu(const struct cpu_str *uni1, const struct le_str *uni2,
>  
>  /* globals from xattr.c */
>  #ifdef CONFIG_NTFS3_FS_POSIX_ACL
> -struct posix_acl *ntfs_get_acl(struct inode *inode, int type);
> +struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu);
>  int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
>  		 struct posix_acl *acl, int type);
>  int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
> diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c
> index 98871c895e77..9239c388050e 100644
> --- a/fs/ntfs3/xattr.c
> +++ b/fs/ntfs3/xattr.c
> @@ -539,8 +539,11 @@ static struct posix_acl *ntfs_get_acl_ex(struct user_namespace *mnt_userns,
>   *
>   * inode_operations::get_acl
>   */
> -struct posix_acl *ntfs_get_acl(struct inode *inode, int type)
> +struct posix_acl *ntfs_get_acl(struct inode *inode, int type, bool rcu)
>  {
> +	if (rcu)
> +		return ERR_PTR(-ECHILD);
> +
>  	/* TODO: init_user_ns? */
>  	return ntfs_get_acl_ex(&init_user_ns, inode, type, 0);
>  }
> @@ -640,7 +643,7 @@ static int ntfs_xattr_get_acl(struct user_namespace *mnt_userns,
>  	if (!(inode->i_sb->s_flags & SB_POSIXACL))
>  		return -EOPNOTSUPP;
>  
> -	acl = ntfs_get_acl(inode, type);
> +	acl = ntfs_get_acl(inode, type, false);
>  	if (IS_ERR(acl))
>  		return PTR_ERR(acl);
>  

This merge fix patch is now needed when the ntfs3 tree is merged with
Linus' tree.
-- 
Cheers,
Stephen Rothwell