From: Tom Keiser Date: Tue, 29 Sep 2009 14:25:55 +0000 (-0400) Subject: make VOL_STATE_VLRU_ADD exclusive X-Git-Tag: openafs-devel-1_5_65~4 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2f270a3e9206344464f1414cb04895090d93590d;p=packages%2Fo%2Fopenafs.git make VOL_STATE_VLRU_ADD exclusive VLRU_Add_r() places a volume into VOL_STATE_VLRU_ADD before calling VLRU_Wait_r(), which drops VOL_LOCK while waiting for the required VLRU queue to quiesce. Thus, it is essential that state VOL_STATE_VLRU_ADD be marked exclusive so that another thread cannot mutate state until the VLRU generation add transaction completes. Reviewed-on: http://gerrit.openafs.org/554 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/vol/volume_inline.h b/src/vol/volume_inline.h index d0bc2f2d4..b5be2acd5 100644 --- a/src/vol/volume_inline.h +++ b/src/vol/volume_inline.h @@ -66,6 +66,7 @@ VIsExclusiveState(VolState state) case VOL_STATE_VNODE_GET: case VOL_STATE_VNODE_CLOSE: case VOL_STATE_VNODE_RELEASE: + case VOL_STATE_VLRU_ADD: return 1; default: return 0;