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

From: Stephen Rothwell <[email-masked]>
Date: Mon, 8 Jul 2019 19:23:45 +1000

Hi all,

After merging the char-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/misc/vmw_balloon.c: In function 'vmballoon_mount':
drivers/misc/vmw_balloon.c:1736:14: error: 'simple_dname' undeclared (first use in this function); did you mean 'simple_rename'?
   .d_dname = simple_dname,
              ^~~~~~~~~~~~
              simple_rename
drivers/misc/vmw_balloon.c:1736:14: note: each undeclared identifier is reported only once for each function it appears in
drivers/misc/vmw_balloon.c:1739:9: error: implicit declaration of function 'mount_pseudo'; did you mean 'mount_bdev'? [-Werror=implicit-function-declaration]
  return mount_pseudo(fs_type, "balloon-vmware:", NULL, &ops,
         ^~~~~~~~~~~~
         mount_bdev
drivers/misc/vmw_balloon.c:1739:9: warning: returning 'int' from a function with return type 'struct dentry *' makes pointer from integer without a cast [-Wint-conversion]
  return mount_pseudo(fs_type, "balloon-vmware:", NULL, &ops,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        BALLOON_VMW_MAGIC);
        ~~~~~~~~~~~~~~~~~~

Caused by commit

  83a8afa72e9c ("vmw_balloon: Compaction support")

interacting with commits

  7e5f7bb08b8c ("unexport simple_dname()")
  8d9e46d80777 ("fold mount_pseudo_xattr() into pseudo_fs_get_tree()")

from the vfs tree.

I applied the following merge fix patch:

From: Stephen Rothwell <[email-masked]>
Date: Mon, 8 Jul 2019 19:17:56 +1000
Subject: [PATCH] convert vmwballoon to use the new mount API

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/misc/vmw_balloon.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/misc/vmw_balloon.c b/drivers/misc/vmw_balloon.c
index 91fa43051535..e8c0f7525f13 100644
--- a/drivers/misc/vmw_balloon.c
+++ b/drivers/misc/vmw_balloon.c
@@ -29,6 +29,7 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/mount.h>
+#include <linux/pseudo_fs.h>
 #include <linux/balloon_compaction.h>
 #include <linux/vmw_vmci_defs.h>
 #include <linux/vmw_vmci_api.h>
@@ -1728,21 +1729,14 @@ static inline void vmballoon_debugfs_exit(struct vmballoon *b)
 
 #ifdef CONFIG_BALLOON_COMPACTION
 
-static struct dentry *vmballoon_mount(struct file_system_type *fs_type,
-				      int flags, const char *dev_name,
-				      void *data)
+static int vmballoon_init_fs_context(struct fs_context *fc)
 {
-	static const struct dentry_operations ops = {
-		.d_dname = simple_dname,
-	};
-
-	return mount_pseudo(fs_type, "balloon-vmware:", NULL, &ops,
-			    BALLOON_VMW_MAGIC);
+	return init_pseudo(fc, BALLOON_VMW_MAGIC) ? 0 : -ENOMEM;
 }
 
 static struct file_system_type vmballoon_fs = {
 	.name           = "balloon-vmware",
-	.mount          = vmballoon_mount,
+	.init_fs_context          = vmballoon_init_fs_context,
 	.kill_sb        = kill_anon_super,
 };
 
-- 
2.20.1

-- 
Cheers,
Stephen Rothwell