btrfs: simplify error return logic when getting folio at prepare_one_folio()

There's no need to have special logic to return -EAGAIN in case the call
to __filemap_get_folio() fails, because when FGP_NOWAIT is passed to
__filemap_get_folio() it returns ERR_PTR(-EAGAIN) if it needs to do
something that would imply blocking.

The reason we have this logic is from the days before we migrated to the
folio interface, when we called pagecache_get_page() which would return
NULL instead of an error pointer.

So remove this special casing and always return the error that the call
to __filemap_get_folio() returned.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana 2025-05-10 14:08:39 +01:00 committed by David Sterba
parent 443e4d0e1c
commit 0f2bc22150

View File

@ -866,13 +866,9 @@ static noinline int prepare_one_folio(struct inode *inode, struct folio **folio_
again:
folio = __filemap_get_folio(inode->i_mapping, index, fgp_flags, mask);
if (IS_ERR(folio)) {
if (nowait)
ret = -EAGAIN;
else
ret = PTR_ERR(folio);
return ret;
}
if (IS_ERR(folio))
return PTR_ERR(folio);
ret = set_folio_extent_mapped(folio);
if (ret < 0) {
folio_unlock(folio);