⛏️ index : haiku.git

author Augustin Cavalier <waddlesplash@gmail.com> 2022-11-29 19:06:56.0 -05:00:00
committer waddlesplash <waddlesplash@gmail.com> 2022-11-30 4:06:42.0 +00:00:00
commit
c120e44ab0d54017d398f68731b6212fc0b1221b [patch]
tree
622287477e458ebf154c1f314c53e21d6daa38cc
parent
1306b294dbceffb0bdd684f21df1e16eeb37fc9f
download
c120e44ab0d54017d398f68731b6212fc0b1221b.tar.gz

ramfs: Acquire write lock before unmounting.

Might help with #18032.
(cherry picked from commit 05fdda96b74e0626aac9810298ff9b32500fc64b)

Change-Id: I8be5c88d3749d19984de5458973c88a0f47afb71
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5845
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

Diff

 src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

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 289c3f7..5e4bb4a 100644
--- a/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp
+++ b/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp
@@ -118,13 +118,14 @@
{
	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);
}