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

From: Stephen Rothwell <[email-masked]>
Date: Wed, 8 May 2019 11:04:04 +1000

Hi all,

On Fri, 3 May 2019 11:09:51 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the vfs tree got a conflict in:
> 
>   fs/ext4/super.c
>   fs/f2fs/super.c
> 
> between commit:
> 
>   2c58d548f570 ("fscrypt: cache decrypted symlink target in ->i_link")
> 
> from the fscrypt tree and commits:
> 
>   94053139d482 ("ext4: make use of ->free_inode()")
>   d01718a050d0 ("f2fs: switch to ->free_inode()")
> 
> from the vfs 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.
> 
> Thanks, Al, for the heads up and example merge.
> 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc fs/ext4/super.c
> index 489cdeeab789,981f702848e7..000000000000
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@@ -1111,12 -1107,8 +1111,9 @@@ static int ext4_drop_inode(struct inod
>   	return drop;
>   }
>   
> - static void ext4_i_callback(struct rcu_head *head)
> + static void ext4_free_in_core_inode(struct inode *inode)
>   {
> - 	struct inode *inode = container_of(head, struct inode, i_rcu);
> - 
>  +	fscrypt_free_inode(inode);
> - 
>   	kmem_cache_free(ext4_inode_cachep, EXT4_I(inode));
>   }
>   
> diff --cc fs/f2fs/super.c
> index f7605b3ff1f9,9924eac76254..000000000000
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@@ -1000,12 -1000,8 +1000,9 @@@ static void f2fs_dirty_inode(struct ino
>   	f2fs_inode_dirtied(inode, false);
>   }
>   
> - static void f2fs_i_callback(struct rcu_head *head)
> + static void f2fs_free_inode(struct inode *inode)
>   {
> - 	struct inode *inode = container_of(head, struct inode, i_rcu);
> - 
>  +	fscrypt_free_inode(inode);
> - 
>   	kmem_cache_free(f2fs_inode_cachep, F2FS_I(inode));
>   }
>   

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

-- 
Cheers,
Stephen Rothwell