Subject: Re: linux-next: manual merge of the fsinfo tree with the vfs tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 10 Aug 2020 08:47:07 +1000

Hi all,

On Mon, 3 Aug 2020 19:05:32 +1000 Stephen Rothwell <[email-masked]> wrote:
> 
> Today's linux-next merge of the fsinfo tree got a conflict in:
> 
>   fs/internal.h
> 
> between commits:
> 
>   c60166f04283 ("init: add an init_mount helper")
>   09267defa36a ("init: add an init_umount helper")
> 
> from the vfs tree and commits:
> 
>   8c62d62ddd1f ("fsinfo: Allow retrieval of superblock devname, options and stats")
>   df9f487eeb11 ("fsinfo: Allow fsinfo() to look up a mount object by ID")
>   0a83b1d9fdcd ("fsinfo: Allow mount information to be queried")
>   969ba80e4121 ("fsinfo: Allow mount topology and propagation info to be retrieved")
>   a177ce034bec ("fsinfo: Add an attribute that lists all the visible mounts in a namespace")
> 
> from the fsinfo tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> diff --cc fs/internal.h
> index 10517ece4516,267b4aaf0271..000000000000
> --- a/fs/internal.h
> +++ b/fs/internal.h
> @@@ -96,11 -95,15 +102,20 @@@ extern int __mnt_want_write_file(struc
>   extern void __mnt_drop_write_file(struct file *);
>   
>   extern void dissolve_on_fput(struct vfsmount *);
>  +
>  +int path_mount(const char *dev_name, struct path *path,
>  +		const char *type_page, unsigned long flags, void *data_page);
>  +int path_umount(struct path *path, int flags);
>  +
> + extern int lookup_mount_object(struct path *, unsigned int, struct path *);
> + extern int fsinfo_generic_mount_source(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_info(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_topology(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_point(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_point_full(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_children(struct path *, struct fsinfo_context *);
> + extern int fsinfo_generic_mount_all(struct path *, struct fsinfo_context *);
> + 
>   /*
>    * fs_struct.c
>    */

This is now a conflict between the fsinfo tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell