diff --git a/src/add-ons/kernel/file_systems/bfs/Volume.cpp b/src/add-ons/kernel/file_systems/bfs/Volume.cpp index 62ce2ca6d1..20bd4e2021 100644 --- a/src/add-ons/kernel/file_systems/bfs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Volume.cpp @@ -74,7 +74,7 @@ DeviceOpener::DeviceOpener(int fd, int mode) DeviceOpener::~DeviceOpener() { - if (fDevice >= B_OK) { + if (fDevice >= 0) { RemoveCache(false); close(fDevice); } @@ -129,7 +129,8 @@ DeviceOpener::Open(int fd, int mode) void * DeviceOpener::InitCache(off_t numBlocks, uint32 blockSize) { - return block_cache_create(fDevice, numBlocks, blockSize, fMode == O_RDONLY); + return fBlockCache = block_cache_create(fDevice, numBlocks, blockSize, + IsReadOnly()); }