Lines Matching refs:volume
36 static void afs_volume_init_callback(struct afs_volume *volume) in afs_volume_init_callback() argument
40 down_read(&volume->open_mmaps_lock); in afs_volume_init_callback()
42 list_for_each_entry(vnode, &volume->open_mmaps, cb_mmap_link) { in afs_volume_init_callback()
43 if (vnode->cb_v_check != atomic_read(&volume->cb_v_break)) { in afs_volume_init_callback()
49 up_read(&volume->open_mmaps_lock); in afs_volume_init_callback()
64 se->volume->cb_expires_at = AFS_NO_CB_PROMISE; in afs_init_callback_state()
65 trace_afs_cb_v_break(se->volume->vid, atomic_read(&se->volume->cb_v_break), in afs_init_callback_state()
67 if (!list_empty(&se->volume->open_mmaps)) in afs_init_callback_state()
68 afs_volume_init_callback(se->volume); in afs_init_callback_state()
84 vnode->cb_v_check = atomic_read(&vnode->volume->cb_v_break); in __afs_break_callback()
114 struct afs_volume *volume = NULL; in afs_lookup_volume_rcu() local
128 volume = rb_entry(p, struct afs_volume, cell_node); in afs_lookup_volume_rcu()
130 if (volume->vid < vid) in afs_lookup_volume_rcu()
132 else if (volume->vid > vid) in afs_lookup_volume_rcu()
136 volume = NULL; in afs_lookup_volume_rcu()
139 if (volume && afs_try_get_volume(volume, afs_volume_trace_get_callback)) in afs_lookup_volume_rcu()
147 return volume; in afs_lookup_volume_rcu()
159 struct afs_volume *volume) in afs_break_volume_callback() argument
162 struct afs_server_list *slist = rcu_dereference(volume->servers); in afs_break_volume_callback()
165 write_lock(&volume->cb_v_break_lock); in afs_break_volume_callback()
170 volume->cb_expires_at = AFS_NO_CB_PROMISE; in afs_break_volume_callback()
172 cb_v_break = atomic_inc_return_release(&volume->cb_v_break); in afs_break_volume_callback()
173 trace_afs_cb_v_break(volume->vid, cb_v_break, afs_cb_break_for_volume_callback); in afs_break_volume_callback()
175 write_unlock(&volume->cb_v_break_lock); in afs_break_volume_callback()
178 if (!list_empty(&volume->open_mmaps)) in afs_break_volume_callback()
179 afs_volume_init_callback(volume); in afs_break_volume_callback()
189 struct afs_volume *volume, in afs_break_one_callback() argument
200 sb = rcu_dereference(volume->sb); in afs_break_one_callback()
218 struct afs_volume *volume; in afs_break_some_callbacks() local
223 volume = afs_lookup_volume_rcu(server->cell, vid); in afs_break_some_callbacks()
225 afs_break_volume_callback(server, volume); in afs_break_some_callbacks()
241 if (volume) in afs_break_some_callbacks()
242 afs_break_one_callback(server, volume, &cbb->fid); in afs_break_some_callbacks()
250 afs_put_volume(volume, afs_volume_trace_put_callback); in afs_break_some_callbacks()