Commit aab5e097 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

six locks: Disable percpu read lock mode in userspace



When running in userspace, we currently don't have a real percpu
implementation available - at least in bcachefs-tools, which is where
this code is currently used in userspace.

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 2d9200cf
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -870,6 +870,11 @@ void __six_lock_init(struct six_lock *lock, const char *name,
	lockdep_init_map(&lock->dep_map, name, key, 0);
#endif

	/*
	 * Don't assume that we have real percpu variables available in
	 * userspace:
	 */
#ifdef __KERNEL__
	if (flags & SIX_LOCK_INIT_PCPU) {
		/*
		 * We don't return an error here on memory allocation failure
@@ -880,5 +885,6 @@ void __six_lock_init(struct six_lock *lock, const char *name,
		 */
		lock->readers = alloc_percpu(unsigned);
	}
#endif
}
EXPORT_SYMBOL_GPL(__six_lock_init);