* Fixed a deadlock found by Salvatore; the volume lock is now only used to
protect the bfs_read_fs_stat() and bfs_write_fs_stat() functions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26154 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
08aba34e74
commit
bcd307089b
@ -2211,8 +2211,6 @@ Inode::Remove(Transaction &transaction, const char *name, ino_t *_id,
|
||||
if (GetTree(&tree) != B_OK)
|
||||
RETURN_ERROR(B_BAD_VALUE);
|
||||
|
||||
RecursiveLocker locker(fVolume->Lock());
|
||||
|
||||
// does the file even exist?
|
||||
off_t id;
|
||||
if (tree->Find((uint8 *)name, (uint16)strlen(name), &id) < B_OK)
|
||||
|
@ -937,7 +937,7 @@ bfs_rename(fs_volume *_volume, fs_vnode *_oldDir, const char *oldName,
|
||||
if (status < B_OK)
|
||||
return status;
|
||||
|
||||
RecursiveLocker locker(volume->Lock());
|
||||
Transaction transaction(volume, oldDirectory->BlockNumber());
|
||||
|
||||
// Get the directory's tree, and a pointer to the inode which should be
|
||||
// changed
|
||||
@ -982,8 +982,6 @@ bfs_rename(fs_volume *_volume, fs_vnode *_oldDir, const char *oldName,
|
||||
|
||||
// Everything okay? Then lets get to work...
|
||||
|
||||
Transaction transaction(volume, oldDirectory->BlockNumber());
|
||||
|
||||
// First, try to make sure there is nothing that will stop us in
|
||||
// the target directory - since this is the only non-critical
|
||||
// failure, we will test this case first
|
||||
|
Loading…
Reference in New Issue
Block a user