diff --git a/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp index a168a7cbea..ff362c6571 100644 --- a/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp @@ -119,13 +119,14 @@ ramfs_unmount(fs_volume* _volume) { FUNCTION_START(); Volume* volume = (Volume*)_volume->private_volume; - - status_t error = volume->Unmount(); - if (error == B_OK) - delete volume; - if (error != B_OK) - REPORT_ERROR(error); - return error; + status_t error = B_OK; + if (VolumeWriteLocker locker = volume) { + error = volume->Unmount(); + if (error == B_OK) + delete volume; + } else + SET_ERROR(error, B_ERROR); + RETURN_ERROR(error); }