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: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
2d9200cfe0
commit
aab5e0972a
@ -870,6 +870,11 @@ void __six_lock_init(struct six_lock *lock, const char *name,
|
|||||||
lockdep_init_map(&lock->dep_map, name, key, 0);
|
lockdep_init_map(&lock->dep_map, name, key, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Don't assume that we have real percpu variables available in
|
||||||
|
* userspace:
|
||||||
|
*/
|
||||||
|
#ifdef __KERNEL__
|
||||||
if (flags & SIX_LOCK_INIT_PCPU) {
|
if (flags & SIX_LOCK_INIT_PCPU) {
|
||||||
/*
|
/*
|
||||||
* We don't return an error here on memory allocation failure
|
* 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);
|
lock->readers = alloc_percpu(unsigned);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(__six_lock_init);
|
EXPORT_SYMBOL_GPL(__six_lock_init);
|
||||||
|
Loading…
Reference in New Issue
Block a user