mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
btrfs: replace BUG_ON() with error return in cache_save_setup()
In cache_save_setup(), if create_free_space_inode() succeeds but the subsequent lookup_free_space_inode() still fails on retry, the BUG_ON(retries) will crash the kernel. This can happen due to I/O errors or transient failures, not just programming bugs. Replace the BUG_ON with proper error handling that returns the original error code through the existing cleanup path. The callers already handle this gracefully: disk_cache_state defaults to BTRFS_DC_ERROR, so the space cache simply won't be written for that block group. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Teng Liu <27rabbitlt@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
@@ -3381,7 +3381,13 @@ again:
|
||||
}
|
||||
|
||||
if (IS_ERR(inode)) {
|
||||
BUG_ON(retries);
|
||||
if (retries) {
|
||||
ret = PTR_ERR(inode);
|
||||
btrfs_err(fs_info,
|
||||
"failed to lookup free space inode after creation for block group %llu: %d",
|
||||
block_group->start, ret);
|
||||
goto out_free;
|
||||
}
|
||||
retries++;
|
||||
|
||||
if (block_group->ro)
|
||||
|
||||
Reference in New Issue
Block a user