Subject: Re: linux-next: manual merge of the fscache tree with the pidfd tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 25 Feb 2021 09:40:28 +1100

Hi all,

On Mon, 15 Feb 2021 08:14:39 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> On Wed, 27 Jan 2021 10:00:38 +1100 Stephen Rothwell <[email-masked]> wrote:
> >
> > Today's linux-next merge of the fscache tree got a conflict in:
> > 
> >   include/linux/fs.h
> > 
> > between commit:
> > 
> >   ba73d98745be ("namei: handle idmapped mounts in may_*() helpers")
> > 
> > from the pidfd tree and commit:
> > 
> >   0de0bdfa19fa ("vfs: Export rw_verify_area() for use by cachefiles")
> > 
> > from the fscache 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 include/linux/fs.h
> > index 7762d3d75230,493804856ab3..000000000000
> > --- a/include/linux/fs.h
> > +++ b/include/linux/fs.h
> > @@@ -2839,22 -2756,11 +2839,23 @@@ static inline int bmap(struct inode *in
> >   }
> >   #endif
> >   
> >  -extern int notify_change(struct dentry *, struct iattr *, struct inode **);
> >  -extern int inode_permission(struct inode *, int);
> >  -extern int generic_permission(struct inode *, int);
> >  -extern int __check_sticky(struct inode *dir, struct inode *inode);
> >  +int notify_change(struct user_namespace *, struct dentry *,
> >  +		  struct iattr *, struct inode **);
> >  +int inode_permission(struct user_namespace *, struct inode *, int);
> >  +int generic_permission(struct user_namespace *, struct inode *, int);
> >  +static inline int file_permission(struct file *file, int mask)
> >  +{
> >  +	return inode_permission(file_mnt_user_ns(file),
> >  +				file_inode(file), mask);
> >  +}
> >  +static inline int path_permission(const struct path *path, int mask)
> >  +{
> >  +	return inode_permission(mnt_user_ns(path->mnt),
> >  +				d_inode(path->dentry), mask);
> >  +}
> >  +int __check_sticky(struct user_namespace *mnt_userns, struct inode *dir,
> >  +		   struct inode *inode);
> > + extern int rw_verify_area(int, struct file *, const loff_t *, size_t);
> >   
> >   static inline bool execute_ok(struct inode *inode)
> >   {  
> 
> With the merge window about to open, this is a reminder that this
> conflict still exists.

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

-- 
Cheers,
Stephen Rothwell