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

From: Stephen Rothwell <[email-masked]>
Date: Tue, 31 Oct 2023 11:26:25 +1100

Hi all,

On Fri, 27 Oct 2023 10:43:56 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> Today's linux-next merge of the vfs-brauner tree got a conflict in:
> 
>   fs/ext2/dir.c
> 
> between commits:
> 
>   1de0736c3af9 ("ext2: Convert ext2_add_link() to use a folio")
>   7e56bbf15d95 ("ext2: Convert ext2_delete_entry() to use folios")
>   82dd620653b3 ("ext2: Convert ext2_prepare_chunk and ext2_commit_chunk to folios")
> 
> from the ext3 tree and commit:
> 
>   5cdc59fce617 ("ext2: convert to new timestamp accessors")
> 
> from the vfs-brauner 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/ext2/dir.c
> index 6807df637112,c7900868171b..000000000000
> --- a/fs/ext2/dir.c
> +++ b/fs/ext2/dir.c
> @@@ -463,9 -466,9 +463,9 @@@ int ext2_set_link(struct inode *dir, st
>   	}
>   	de->inode = cpu_to_le32(inode->i_ino);
>   	ext2_set_de_type(de, inode);
>  -	ext2_commit_chunk(page, pos, len);
>  +	ext2_commit_chunk(folio, pos, len);
>   	if (update_times)
> - 		dir->i_mtime = inode_set_ctime_current(dir);
> + 		inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
>   	EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
>   	mark_inode_dirty(dir);
>   	return ext2_handle_dirsync(dir);
> @@@ -551,8 -554,8 +551,8 @@@ got_it
>   	memcpy(de->name, name, namelen);
>   	de->inode = cpu_to_le32(inode->i_ino);
>   	ext2_set_de_type (de, inode);
>  -	ext2_commit_chunk(page, pos, rec_len);
>  +	ext2_commit_chunk(folio, pos, rec_len);
> - 	dir->i_mtime = inode_set_ctime_current(dir);
> + 	inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
>   	EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
>   	mark_inode_dirty(dir);
>   	err = ext2_handle_dirsync(dir);
> @@@ -605,8 -605,8 +605,8 @@@ int ext2_delete_entry(struct ext2_dir_e
>   	if (pde)
>   		pde->rec_len = ext2_rec_len_to_disk(to - from);
>   	dir->inode = 0;
>  -	ext2_commit_chunk(page, pos, to - from);
>  +	ext2_commit_chunk(folio, pos, to - from);
> - 	inode->i_mtime = inode_set_ctime_current(inode);
> + 	inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
>   	EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL;
>   	mark_inode_dirty(inode);
>   	return ext2_handle_dirsync(inode);

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

-- 
Cheers,
Stephen Rothwell