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