Subject: Re: linux-next: manual merge of the block tree with the f2fs tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 15 Dec 2020 07:12:12 +1100

Hi all,

On Thu, 3 Dec 2020 14:43:48 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the block tree got conflicts in:
> 
>   fs/f2fs/checkpoint.c
>   fs/f2fs/f2fs.h
>   fs/f2fs/super.c
> 
> between commit:
> 
>   5c0602188dc7 ("f2fs: fix kbytes written stat for multi-device case")
> 
> from the f2fs tree and commits:
> 
>   8446fe9255be ("block: switch partition lookup to use struct block_device")
>   9499ffc75217 ("f2fs: remove a few bd_part checks")
> 
> from the block tree.
> 
> I fixed it up (I think, see below, fs/f2fs/f2fs.h and fs/f2fs/super.c
> used the versions from the f2fs tree) 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.
> 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc fs/f2fs/checkpoint.c
> index 14ba1519639e,54a1905af052..000000000000
> --- a/fs/f2fs/checkpoint.c
> +++ b/fs/f2fs/checkpoint.c
> @@@ -1385,27 -1385,6 +1385,26 @@@ static void commit_checkpoint(struct f2
>   	f2fs_submit_merged_write(sbi, META_FLUSH);
>   }
>   
>  +static inline u64 get_sectors_written(struct block_device *bdev)
>  +{
> - 	return bdev->bd_part ?
> - 		(u64)part_stat_read(bdev->bd_part, sectors[STAT_WRITE]) : 0;
> ++	return (u64)part_stat_read(bdev, sectors[STAT_WRITE]) : 0;
                                                             ^^^^
With this rmeoved.

>  +}
>  +
>  +u64 f2fs_get_sectors_written(struct f2fs_sb_info *sbi)
>  +{
>  +	if (f2fs_is_multi_device(sbi)) {
>  +		u64 sectors = 0;
>  +		int i;
>  +
>  +		for (i = 0; i < sbi->s_ndevs; i++)
>  +			sectors += get_sectors_written(FDEV(i).bdev);
>  +
>  +		return sectors;
>  +	}
>  +
>  +	return get_sectors_written(sbi->sb->s_bdev);
>  +}
>  +
>   static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>   {
>   	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
> diff --cc fs/f2fs/f2fs.h
> index 5cd1b9f7cc53,49681a8d2b14..000000000000
> --- a/fs/f2fs/f2fs.h
> +++ b/fs/f2fs/f2fs.h
> diff --cc fs/f2fs/super.c
> index 47858e0c5e95,af9f449da64b..000000000000
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c

Just a reminder that the above conflict still exists.

-- 
Cheers,
Stephen Rothwell