From 274e684a8e5c7b8bf60551ca760ecfb34680b7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 31 Jul 2008 07:41:58 +0000 Subject: [PATCH] * bfs_rename() did not write lock the moved inode, but only its former and new parent directories. This would only be necessary in case it's a directory, but we do it always now. * This fixes bug #2556. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26694 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index ebff7bd6eb..e46554da8a 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -1069,6 +1069,8 @@ bfs_rename(fs_volume *_volume, fs_vnode *_oldDir, const char *oldName, if (status < B_OK) return status; + WriteLocker _(inode->Lock()); + // update the name only when they differ bool nameUpdated = false; if (strcmp(oldName, newName)) {