afs: Make callback processing more efficient.
[linux-2.6-microblaze.git] / fs / afs / internal.h
index 61320a6..b6665fc 100644 (file)
@@ -524,9 +524,9 @@ struct afs_server {
        rwlock_t                fs_lock;        /* access lock */
 
        /* callback promise management */
-       struct hlist_head       cb_volumes;     /* List of volume interests on this server */
+       struct rb_root          cb_volumes;     /* List of volume interests on this server */
        unsigned                cb_s_break;     /* Break-everything counter. */
-       rwlock_t                cb_break_lock;  /* Volume finding lock */
+       seqlock_t               cb_break_lock;  /* Volume finding lock */
 
        /* Probe state */
        unsigned long           probed_at;      /* Time last probe was dispatched (jiffies) */
@@ -552,7 +552,7 @@ struct afs_server {
  * Volume collation in the server's callback interest list.
  */
 struct afs_vol_interest {
-       struct hlist_node       srv_link;       /* Link in server->cb_volumes */
+       struct rb_node          srv_node;       /* Link in server->cb_volumes */
        struct hlist_head       cb_interests;   /* List of callback interests on the server */
        union {
                struct rcu_head rcu;