From d472d9d98b463dd7a04f2bcdeafe4261686ce6ab Mon Sep 17 00:00:00 2001
From: "Luck, Tony" <tony.luck@intel.com>
Date: Tue, 3 Sep 2013 14:49:49 -0700
Subject: lockref: Relax in cmpxchg loop
Git-commit: d472d9d98b463dd7a04f2bcdeafe4261686ce6ab
Patch-mainline: v3.12-rc1
References: FATE#317271

While we are likley to succeed and break out of this loop, it isn't
guaranteed.  We should be power and thread friendly if we do have to
go around for a second (or third, or more) attempt.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Jeff Mahoney <jeffm@suse.com>
---
 lib/lockref.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/lockref.c b/lib/lockref.c
index 7819c2d..9d76f40 100644
--- a/lib/lockref.c
+++ b/lib/lockref.c
@@ -19,6 +19,7 @@
 		if (likely(old.lock_count == prev.lock_count)) {		\
 			SUCCESS;						\
 		}								\
+		cpu_relax();							\
 	}									\
 } while (0)
 

