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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 19 Aug 2021 09:39:10 +1000

Hi all,

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);
 
-- 
2.32.0

-- 
Cheers,
Stephen Rothwell