aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/internal.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 23:39:14 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 23:39:14 -0400
commit39bf09493042200b967cdf2ee6e3f670b7963903 (patch)
tree081f76ef36a7ac43dd756dea1f9201caba7c821b /fs/afs/internal.h
parent68c708fd5e90f6d178c84bb7e641589eb2842319 (diff)
[AFS]: Eliminate cmpxchg() usage in vlocation code.
cmpxchg() is not available on every processor so can't be used in generic code. Replace with spinlock protection on the ->state changes, wakeups, and wait loops. Add what appears to be a missing wakeup on transition to AFS_VL_VALID state in afs_vlocation_updater(). Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/afs/internal.h')
-rw-r--r--fs/afs/internal.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 73bfa0b2d99e..6dd3197d1d8d 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -219,7 +219,7 @@ struct afs_vlocation {
219 struct afs_volume *vols[3]; /* volume access record pointer (index by type) */ 219 struct afs_volume *vols[3]; /* volume access record pointer (index by type) */
220 wait_queue_head_t waitq; /* status change waitqueue */ 220 wait_queue_head_t waitq; /* status change waitqueue */
221 time_t update_at; /* time at which record should be updated */ 221 time_t update_at; /* time at which record should be updated */
222 rwlock_t lock; /* access lock */ 222 spinlock_t lock; /* access lock */
223 afs_vlocation_state_t state; /* volume location state */ 223 afs_vlocation_state_t state; /* volume location state */
224 unsigned short upd_rej_cnt; /* ENOMEDIUM count during update */ 224 unsigned short upd_rej_cnt; /* ENOMEDIUM count during update */
225 unsigned short upd_busy_cnt; /* EBUSY count during update */ 225 unsigned short upd_busy_cnt; /* EBUSY count during update */