openafs/src/afs
Derrick Brashear 12fa5b859b xvcb lock order violation
afs_FlushVCBs(1) = xvcb, xserver (in that order)

afs_GetServer = xserver, xsrvAddr, (call afs_RemoveSrvAddr which calls
afs_FlushServer, which gets xvcb)

"nope". do a little dance to get xvcb, searching for a struct server to reuse
again if we had to block.

if you're curious:
Lock afs_xserver status: (reader_waitingwriter_waiting, write_locked(pid:1589 at:36), 3 waiters)
Lock afs_xvcb status: (none_waiting, write_locked(pid:0 at:273))
Lock afs_xsrvAddr status: (none_waiting, write_locked(pid:1589 at:116))

Change-Id: If295d0b9ce347c1cc24df12cd9934a30dce2a3c6
Reviewed-on: http://gerrit.openafs.org/5294
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Derrick Brashear <shadow@dementix.org>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
2011-08-31 11:37:21 -07:00
..
AIX
DARWIN macos: fix race in afs_root 2011-08-15 12:04:26 -07:00
DFBSD
DOC libafs: Implement unixuser RW locks 2011-05-19 05:02:57 -07:00
FBSD FBSD: coalesce three assignments to the same variable 2011-08-12 12:36:28 -07:00
HPUX libafs: Remove unecessary parameters to afs_read 2011-04-13 10:02:37 -07:00
IRIX Revert "afs: Use 64-bit inode numbers" 2011-07-19 19:39:24 -07:00
LINUX LINUX vcache lock ordering in afs_linux_readdir 2011-08-25 10:11:26 -07:00
LINUX24 afs: Use cell for md5 inode numbers 2011-07-06 22:50:14 -07:00
NBSD Port cache manager to NetBSD-5 and NetBSD-current 2011-05-31 05:35:32 -07:00
OBSD libafs: Remove unecessary parameters to afs_read 2011-04-13 10:02:37 -07:00
SOLARIS SOLARIS: Do not release NULL root vp on unmount 2011-08-01 05:08:35 -07:00
SUNOS
UKERNEL UKERNEL: Avoid using parameters named "new" 2011-07-16 22:01:13 -07:00
VNOPS libafs: don't crash if afs_write() is called with zero-length uio 2011-08-22 12:13:06 -07:00
.gitignore
afs_analyze.c libafs: Rate-limit hard-mount waiting messages 2011-07-29 14:17:31 -07:00
afs_axscache.c
afs_axscache.h
afs_buffer.c dir: Prototype and function name cleanup 2011-06-02 07:38:14 -07:00
afs_bypasscache.c Tidy up uio_t meaning 2011-06-05 07:36:20 -07:00
afs_bypasscache.h Tidy up uio_t meaning 2011-06-05 07:36:20 -07:00
afs_call.c afsd: Add the -rxmaxfrags option 2011-07-22 05:36:08 -07:00
afs_callback.c libafs: don't free a null pointer in an unlikely error condition 2011-08-13 19:07:45 -07:00
afs_cbqueue.c
afs_cbqueue.h
afs_cell.c src/afs: Set but unused variables warning fixes 2011-04-27 04:56:19 -07:00
afs_chunk.c
afs_chunkops.h libafs: Remove afs_write duplication 2011-04-16 13:49:57 -07:00
afs_conn.c libafs: Add afs_conn refCount imbalance safeguard 2011-07-29 14:15:59 -07:00
afs_consts.h
afs_daemons.c Port cache manager to NetBSD-5 and NetBSD-current 2011-05-31 05:35:32 -07:00
afs_dcache.c libafs: don't call afs_PutDCache(NULL) in afs_GetDownD() 2011-08-13 19:08:43 -07:00
afs_disconnected.c libafs: Get rx conn ref with afs conn ref 2011-05-09 05:04:14 -07:00
afs_dynroot.c libafs: memset dirHeader->hashTable 2011-06-09 11:52:15 -07:00
afs_dynroot.h
afs_error.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_exporter.c
afs_fetchstore.c libafs: crash in a more useful way if nchunks is zero 2011-08-28 20:46:33 -07:00
afs_icl.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_init.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_lock.c Remove nonsensical bozon-lock defines 2011-06-30 07:27:52 -07:00
afs_mariner.c
afs_memcache.c libafs: Remove afs_write duplication 2011-04-16 13:49:57 -07:00
afs_nfsclnt.c libafs: Implement unixuser RW locks 2011-05-19 05:02:57 -07:00
afs_nfsdisp.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_osi_alloc.c Port cache manager to NetBSD-5 and NetBSD-current 2011-05-31 05:35:32 -07:00
afs_osi_pag.c Port cache manager to NetBSD-5 and NetBSD-current 2011-05-31 05:35:32 -07:00
afs_osi_uio.c libafs: Tidy up iovec allocation and trimming 2011-06-05 07:38:47 -07:00
afs_osi_vget.c
afs_osi_vm.c libafs: Do not osi_FlushPages for dirs 2011-03-21 10:24:33 -07:00
afs_osi.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_osi.h xstat: cm xstat time values are 32 bit 2011-08-29 14:17:19 -07:00
afs_osidnlc.c libafs: Remove unused DNLC LRU code 2011-07-13 09:56:21 -07:00
afs_osidnlc.h
afs_pag_call.c Linux: 2.6.39: deal with BKL removal 2011-03-27 10:08:50 -07:00
afs_pag_cred.c libafs: Implement unixuser RW locks 2011-05-19 05:02:57 -07:00
afs_pioctl.c afs_pioctl: don't use cell uninitialized in PGetTokens2 2011-08-07 11:50:19 -07:00
afs_prototypes.h xvcb lock order violation 2011-08-31 11:37:21 -07:00
afs_segments.c libafs: Remove support for length optimisation 2011-07-13 10:35:11 -07:00
afs_server.c xvcb lock order violation 2011-08-31 11:37:21 -07:00
afs_stat.c
afs_stats.h xstat: cm xstat time values are 32 bit 2011-08-29 14:17:19 -07:00
afs_syscall.c FBSD: cast pointers appropriately 2011-07-17 11:11:36 -07:00
afs_tokens.c libafs: don't free the NULL we get from a failed allocation 2011-08-13 19:07:21 -07:00
afs_trace.et Linux: cleanup aio support 2011-04-26 07:33:11 -07:00
afs_user.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_util.c Revert "afs: Use 64-bit inode numbers" 2011-07-19 19:39:24 -07:00
afs_util.h
afs_vcache.c macos: fix race in afs_root 2011-08-15 12:04:26 -07:00
afs_volume.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs_warn.c Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
afs.h libafs: Rate-limit hard-mount waiting messages 2011-07-29 14:17:31 -07:00
afsincludes.h
discon.h
exporter.h Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
libafsdep
lock.h Remove nonsensical bozon-lock defines 2011-06-30 07:27:52 -07:00
Makefile.in Install afszcm.cat for i386_fbsd make dest 2011-07-14 13:29:27 -07:00
nfsclient.h
NTMakefile
sysctl.h macos: bulkstat sysctl 2011-05-27 07:43:20 -07:00
sysincludes.h Remove support for Solaris pre-8 2011-06-30 07:27:39 -07:00
unified_afs.et
unified_afs.p.h Windows: unified afs errors must use nt mapping 2011-08-01 10:42:39 -07:00
voldefs.h
volerrors.h