diff --git a/src/add-ons/kernel/file_systems/bfs/Volume.cpp b/src/add-ons/kernel/file_systems/bfs/Volume.cpp index 027e95ca26..946d46f964 100644 --- a/src/add-ons/kernel/file_systems/bfs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Volume.cpp @@ -16,10 +16,11 @@ #include #include -#include -#include -#include #include +#include +#include +#include +#include static const int32 kDesiredAllocationGroups = 56; @@ -78,6 +79,9 @@ int DeviceOpener::Open(const char *device, int mode) { fDevice = open(device, mode); + if (fDevice < 0) + fDevice = errno; + if (fDevice < 0 && mode == O_RDWR) { // try again to open read-only (don't rely on a specific error code) return Open(device, O_RDONLY);