summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-02-05 23:57:40 +0100
committerRichard Braun <rbraun@sceen.net>2014-02-05 23:57:40 +0100
commit801256914d42b3aa4bb0af22432471b1d911a66c (patch)
treefb4e59c9d9fe4fdf55dd5068b3dcc51fcb489cf1
parent90246df5d413c6b6a2d57d66c48c2fe3206eb42b (diff)
Revert "trans: fix locking issue in fakeroot"
This reverts commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4. That change is apparently not needed and introduced a deadlock. * trans/fakeroot.c (netfs_attempt_mkfile): Unlock directory node before creating new node.
-rw-r--r--trans/fakeroot.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/trans/fakeroot.c b/trans/fakeroot.c
index 3dce22e8..b79a37d0 100644
--- a/trans/fakeroot.c
+++ b/trans/fakeroot.c
@@ -670,11 +670,11 @@ netfs_attempt_mkfile (struct iouser *user, struct node *dir,
file_t newfile;
error_t err = dir_mkfile (dir->nn->file, O_RDWR|O_EXEC,
real_from_fake_mode (mode), &newfile);
+ pthread_mutex_unlock (&dir->lock);
if (err == 0)
err = new_node (newfile, MACH_PORT_NULL, 0, O_RDWR|O_EXEC, np);
if (err == 0)
pthread_mutex_unlock (&(*np)->lock);
- pthread_mutex_unlock (&dir->lock);
return err;
}