btrfs: handle empty eb->folios in num_extent_folios()
[ Upstream commit d6fe0c69b3aa5c985380b794bdf8e6e9b1811e60 ] 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: Qu Wenruo <wqu@suse.com> Signed-off-by: Boris Burkov <boris@bur.io> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7f7c8c03fe
commit
230c94ca35
@@ -293,6 +293,8 @@ static inline int num_extent_pages(const struct extent_buffer *eb)
|
|||||||
*/
|
*/
|
||||||
static inline int num_extent_folios(const struct extent_buffer *eb)
|
static inline int num_extent_folios(const struct extent_buffer *eb)
|
||||||
{
|
{
|
||||||
|
if (!eb->folios[0])
|
||||||
|
return 0;
|
||||||
if (folio_order(eb->folios[0]))
|
if (folio_order(eb->folios[0]))
|
||||||
return 1;
|
return 1;
|
||||||
return num_extent_pages(eb);
|
return num_extent_pages(eb);
|
||||||
|
|||||||
Reference in New Issue
Block a user