Index: native_client_sdk/src/libraries/nacl_io/kernel_object.cc |
diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_object.cc b/native_client_sdk/src/libraries/nacl_io/kernel_object.cc |
index 98362ebf3101be9bbf22448196681a57ad8f8f39..8b64ca15caa1414f319f16285a952aefa85423f0 100644 |
--- a/native_client_sdk/src/libraries/nacl_io/kernel_object.cc |
+++ b/native_client_sdk/src/libraries/nacl_io/kernel_object.cc |
@@ -40,7 +40,8 @@ Error KernelObject::AttachFsAtPath(const ScopedFilesystem& fs, |
return 0; |
} |
-Error KernelObject::DetachFsAtPath(const std::string& path) { |
+Error KernelObject::DetachFsAtPath(const std::string& path, |
+ ScopedFilesystem* out_fs) { |
std::string abs_path = GetAbsParts(path).Join(); |
AUTO_LOCK(fs_lock_); |
@@ -52,6 +53,8 @@ Error KernelObject::DetachFsAtPath(const std::string& path) { |
if (it->second->RefCount() != 1) |
return EBUSY; |
+ *out_fs = it->second; |
+ |
filesystems_.erase(it); |
return 0; |
} |