Blame SOURCES/autofs-5.1.4-fix-incorrect-locking-in-sss-lookup.patch

9ddfc2
autofs-5.1.4 - fix incorrect locking in sss lookup
9ddfc2
9ddfc2
From: Ian Kent <raven@themaw.net>
9ddfc2
9ddfc2
Commit 766e0f6c4, autofs-5.0.7 - fix fix wildcard multi map regression,
9ddfc2
introduced a deadlock during restart when the sss modules is used.
9ddfc2
9ddfc2
Looking at the comment above the code which takes the lock it clearly
9ddfc2
does this incorrectly.
9ddfc2
9ddfc2
Signed-off-by: Ian Kent <raven@themaw.net>
9ddfc2
---
9ddfc2
 CHANGELOG            |    1 +
9ddfc2
 modules/lookup_sss.c |    4 ++--
9ddfc2
 2 files changed, 3 insertions(+), 2 deletions(-)
9ddfc2
9ddfc2
--- autofs-5.0.7.orig/CHANGELOG
9ddfc2
+++ autofs-5.0.7/CHANGELOG
9ddfc2
@@ -310,6 +310,7 @@
9ddfc2
 - set bind mount as propagation slave.
9ddfc2
 - add master map pseudo options for mount propagation.
9ddfc2
 - fix amd parser opts option handling.
9ddfc2
+- fix incorrect locking in sss lookup.
9ddfc2
 
9ddfc2
 25/07/2012 autofs-5.0.7
9ddfc2
 =======================
9ddfc2
--- autofs-5.0.7.orig/modules/lookup_sss.c
9ddfc2
+++ autofs-5.0.7/modules/lookup_sss.c
9ddfc2
@@ -786,9 +786,9 @@ int lookup_mount(struct autofs_point *ap
9ddfc2
 	 * when we're starting up so just take the readlock in that
9ddfc2
 	 */
9ddfc2
 	if (ap->flags & MOUNT_FLAG_REMOUNT)
9ddfc2
-		cache_writelock(mc);
9ddfc2
-	else
9ddfc2
 		cache_readlock(mc);
9ddfc2
+	else
9ddfc2
+		cache_writelock(mc);
9ddfc2
 	me = cache_lookup(mc, key);
9ddfc2
 	/* Stale mapent => check for entry in alternate source or wildcard */
9ddfc2
 	if (me && !me->mapent) {