Hi all,
Today's linux-next merge of the folio tree got a conflict in:
fs/btrfs/send.c
between commit:
d1a1a97304b4 ("btrfs: send: keep the current inode open while processing it")
from the btrfs tree and commit:
2ebdd1df3166 ("mm/readahead: Convert page_cache_async_readahead to take a folio")
from the folio tree.
I fixed it up (I think - 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.
--
Cheers,
Stephen Rothwell
diff --cc fs/btrfs/send.c
index 8e8e4ab59930,8985d115559d..000000000000
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@@ -4905,13 -4984,14 +4905,14 @@@ static int put_file_data(struct send_ct
}
}
- if (PageReadahead(page)) {
- page_cache_async_readahead(inode->i_mapping, &sctx->ra,
- NULL, page_folio(page), index,
- last_index + 1 - index);
- }
+ if (PageReadahead(page))
+ page_cache_async_readahead(sctx->cur_inode->i_mapping,
- &sctx->ra, NULL, page, index,
++ &sctx->ra, NULL,
++ page_folio(page), index,
+ last_index + 1 - index);
if (!PageUptodate(page)) {
- btrfs_readpage(NULL, page);
+ btrfs_read_folio(NULL, page_folio(page));
lock_page(page);
if (!PageUptodate(page)) {
unlock_page(page);
On 10/05/22 09:39, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the folio tree got a conflict in:
>
> fs/btrfs/send.c
>
> between commit:
>
> d1a1a97304b4 ("btrfs: send: keep the current inode open while processing it")
>
> from the btrfs tree and commit:
>
> 2ebdd1df3166 ("mm/readahead: Convert page_cache_async_readahead to take a folio")
>
> from the folio tree.
>
> I fixed it up (I think - see below) and can carry the fix as
Looks correct to me.
Thanks.
> 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.
>
On Tue, May 10, 2022 at 10:43:07AM +0100, Filipe Manana wrote:
> On 10/05/22 09:39, Stephen Rothwell wrote:
> > Hi all,
> >
> > Today's linux-next merge of the folio tree got a conflict in:
> >
> > fs/btrfs/send.c
> >
> > between commit:
> >
> > d1a1a97304b4 ("btrfs: send: keep the current inode open while processing it")
> >
> > from the btrfs tree and commit:
> >
> > 2ebdd1df3166 ("mm/readahead: Convert page_cache_async_readahead to take a folio")
> >
> > from the folio tree.
> >
> > I fixed it up (I think - see below) and can carry the fix as
>
> Looks correct to me.
Me too. The patch this one enables is rather sad. It's yet another
reminder that we suck at streaming workloads. But until we fix that,
don't you want to use invalidate_inode_pages2_range() rather than
truncate_inode_pages_range()? If your send conflicts with someone
else's write(), you'll erase their write to the page cache.
On 10/05/22 16:04, Matthew Wilcox wrote:
> On Tue, May 10, 2022 at 10:43:07AM +0100, Filipe Manana wrote:
>> On 10/05/22 09:39, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> Today's linux-next merge of the folio tree got a conflict in:
>>>
>>> fs/btrfs/send.c
>>>
>>> between commit:
>>>
>>> d1a1a97304b4 ("btrfs: send: keep the current inode open while processing it")
>>>
>>> from the btrfs tree and commit:
>>>
>>> 2ebdd1df3166 ("mm/readahead: Convert page_cache_async_readahead to take a folio")
>>>
>>> from the folio tree.
>>>
>>> I fixed it up (I think - see below) and can carry the fix as
>>
>> Looks correct to me.
>
> Me too. The patch this one enables is rather sad. It's yet another
> reminder that we suck at streaming workloads. But until we fix that,
> don't you want to use invalidate_inode_pages2_range() rather than
> truncate_inode_pages_range()? If your send conflicts with someone
> else's write(), you'll erase their write to the page cache.
Send operates only on readonly trees, so it can't happen.
Thanks.
>
© 2016 - 2026 Red Hat, Inc.