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

From: Greg KH <[email-masked]>
Date: Fri, 12 Jul 2019 09:59:20 +0200

On Fri, Jul 12, 2019 at 10:44:30AM +1000, Stephen Rothwell wrote:
> 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.

Looks good to me, I'll watch out for this when Al's tree is merged.

thanks,

greg k-h