mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 06:50:12 +00:00
18b4243772
In rx_atomic.h, our "fallback" implementation of atomics uses a global lock, using our afs_kmutex_t/MUTEX_ENTER() abstractions, but rx_atomic.h doesn't include any headers to define afs_kmutex_t et al. Most callers include rx_lwp.h or an equivalent before rx_atomic.h, but this is not guaranteed, and tests/rx/atomic-t.c (for example) does not do this. If someone tries to build OpenAFS on a platform that doesn't have a more specific rx atomic implementation, this means that building atomic-t fails: In file included from /.../tests/rx/atomic-t.c:34: /.../include/rx/rx_atomic.h: In function ‘rx_atomic_set’: /.../include/rx/rx_atomic.h:402:5: error: implicit declaration of function ‘MUTEX_ENTER’ [-Werror=implicit-function-declaration] MUTEX_ENTER(&rx_atomic_mutex); ^~~~~~~~~~~ /.../include/rx/rx_atomic.h:402:18: error: ‘rx_atomic_mutex’ undeclared (first use in this function); did you mean ‘rx_atomic_set’? MUTEX_ENTER(&rx_atomic_mutex); ^~~~~~~~~~~~~~~ rx_atomic_set To fix this, include rx_lwp.h in the "fallback" branch of rx_atomic.h (or rx_kmutex.h for the kernel, or rx_pthread.h for pthreads). This should ensure that our locking abstractions are defined appropriately so we can use the rx_atomic_mutex global lock. Change-Id: Ie281161f4920a5b6b5b23acd77f7677806245673 Reviewed-on: https://gerrit.openafs.org/16062 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Ben Huntsman <ben@huntsmans.net> Tested-by: Ben Huntsman <ben@huntsmans.net> Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Andrew Deason <adeason@sinenomine.net> |
||
---|---|---|
build-tools | ||
doc | ||
src | ||
tests | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.splintrc | ||
acinclude.m4 | ||
CODING | ||
configure-libafs.ac | ||
configure.ac | ||
CONTRIBUTING | ||
INSTALL | ||
libafsdep | ||
LICENSE | ||
Makefile-libafs.in | ||
Makefile.in | ||
NEWS | ||
NTMakefile | ||
README | ||
README-WINDOWS | ||
regen.sh |
AFS is a distributed file system that enables users to share and access all of the files stored in a network of computers as easily as they access the files stored on their local machines. The file system is called distributed for this exact reason: files can reside on many different machines, but are available to users on every machine. OpenAFS 1.0 was originally released by IBM under the terms of the IBM Public License 1.0 (IPL10). For details on IPL10 see the LICENSE file in this directory. The current OpenAFS distribution is licensed under a combination of the IPL10 and many other licenses as granted by the relevant copyright holders. The LICENSE file in this directory contains more details, thought it is not a comprehensive statement. See INSTALL for information about building and installing OpenAFS on various platforms. See CODING for developer information and guidelines. See NEWS for recent changes to OpenAFS.