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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 17 Dec 2020 12:50:52 +1100

Hi all,

On Tue, 15 Dec 2020 07:12:12 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> 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.
> > 
> > 
> > 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 removed.
> 
> >  +}
> >  +
> >  +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.

This is now a conflict between the f2fs tree and Linus' tree.
-- 
Cheers,
Stephen Rothwell