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

From: Stephen Rothwell <[email-masked]>
Date: Fri, 12 Jul 2019 10:44:30 +1000

Hi all,

On Mon, 8 Jul 2019 19:23:45 +1000 Stephen Rothwell <[email-masked]> wrote:
> 
> 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,
>  };
>  

This is now a conflict between the vfs tree and Linus' tree.
-- 
Cheers,
Stephen Rothwell