Commit d6fe0c69 authored by Boris Burkov's avatar Boris Burkov Committed by David Sterba
Browse files

btrfs: handle empty eb->folios in num_extent_folios()



num_extent_folios() unconditionally calls folio_order() on
eb->folios[0]. If that is NULL this will be a segfault. It is reasonable
for it to return 0 as the number of folios in the eb when the first
entry is NULL, so do that instead.

Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
Signed-off-by: default avatarBoris Burkov <boris@bur.io>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent bc7e0975
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -298,6 +298,8 @@ static inline int __pure num_extent_pages(const struct extent_buffer *eb)
 */
static inline int __pure num_extent_folios(const struct extent_buffer *eb)
{
	if (!eb->folios[0])
		return 0;
	if (folio_order(eb->folios[0]))
		return 1;
	return num_extent_pages(eb);