btrfs: handle unknown compression instead of panicking
Instead of triggering a Kernel Debugging Land (KDL) session when encountering an unsupported compression type (like ZSTD), the driver now returns B_NOT_SUPPORTED and logs an error. This keeps the system stable and allows the VFS to handle the error gracefully. Fixes #19914 Change-Id: I5f43eef1c04982014430de63f3840af0d6cfefb0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10263 Reviewed-by: waddlesplash <[email protected]> Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
22a91d557c
commit
d52ea5c8d2
@@ -257,7 +257,7 @@ Inode::ReadAt(off_t pos, uint8* buffer, size_t* _length)
|
|||||||
else if (compression == BTRFS_EXTENT_COMPRESS_ZLIB)
|
else if (compression == BTRFS_EXTENT_COMPRESS_ZLIB)
|
||||||
panic("zlib isn't unsupported for regular extent\n");
|
panic("zlib isn't unsupported for regular extent\n");
|
||||||
else
|
else
|
||||||
panic("unknown extent compression; %d\n", compression);
|
ERROR("unknown extent compression; %d\n", compression);
|
||||||
return B_BAD_DATA;
|
return B_BAD_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,8 +347,8 @@ Inode::ReadAt(off_t pos, uint8* buffer, size_t* _length)
|
|||||||
*_length = zStream.total_out;
|
*_length = zStream.total_out;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
panic("unknown extent compression; %d\n", compression);
|
ERROR("unknown extent compression; %d\n", compression);
|
||||||
return B_BAD_DATA;
|
return B_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user