Previously, libdiskfs would deadlock on contention on renamedirlock
due to the lock being taken spuriously.
Found using fsstress from the Linux Test Project.
* libdiskfs/dir-rename.c (diskfs_S_dir_rename): Remove spurious
pthread_mutex_lock.
---
libdiskfs/dir-rename.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/libdiskfs/dir-rename.c b/libdiskfs/dir-rename.c
index ff9dead..9ac4839 100644
--- a/libdiskfs/dir-rename.c
+++ b/libdiskfs/dir-rename.c
@@ -77,7 +77,6 @@ diskfs_S_dir_rename (struct protid *fromcred,
if (pthread_mutex_trylock (&renamedirlock))
{
diskfs_nrele (fnp);
- pthread_mutex_lock (&renamedirlock);
goto try_again;
}
err = diskfs_rename_dir (fdp, fnp, fromname, tdp, toname, fromcred,
--
2.0.0