From 38d064eab719b8334144094d6499c24718a255c1 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sun, 22 Jun 2014 14:48:34 +0200 Subject: libdiskfs: fix deadlock 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(-) (limited to 'libdiskfs') diff --git a/libdiskfs/dir-rename.c b/libdiskfs/dir-rename.c index ff9dead0..9ac48398 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, -- cgit v1.2.3