Lines Matching refs:vnode
23 bool afs_begin_vnode_operation(struct afs_fs_cursor *fc, struct afs_vnode *vnode, in afs_begin_vnode_operation() argument
27 fc->vnode = vnode; in afs_begin_vnode_operation()
34 if (mutex_lock_interruptible(&vnode->io_lock) < 0) { in afs_begin_vnode_operation()
40 mutex_lock(&vnode->io_lock); in afs_begin_vnode_operation()
43 if (vnode->lock_state != AFS_VNODE_LOCK_NONE) in afs_begin_vnode_operation()
53 struct afs_vnode *vnode) in afs_start_fs_iteration() argument
58 read_lock(&vnode->volume->servers_lock); in afs_start_fs_iteration()
59 fc->server_list = afs_get_serverlist(vnode->volume->servers); in afs_start_fs_iteration()
60 read_unlock(&vnode->volume->servers_lock); in afs_start_fs_iteration()
65 cbi = rcu_dereference_protected(vnode->cb_interest, in afs_start_fs_iteration()
66 lockdep_is_held(&vnode->io_lock)); in afs_start_fs_iteration()
86 write_seqlock(&vnode->cb_lock); in afs_start_fs_iteration()
87 ASSERTCMP(cbi, ==, rcu_access_pointer(vnode->cb_interest)); in afs_start_fs_iteration()
88 rcu_assign_pointer(vnode->cb_interest, NULL); in afs_start_fs_iteration()
89 if (test_and_clear_bit(AFS_VNODE_CB_PROMISED, &vnode->flags)) in afs_start_fs_iteration()
90 vnode->cb_break++; in afs_start_fs_iteration()
91 write_sequnlock(&vnode->cb_lock); in afs_start_fs_iteration()
93 afs_put_cb_interest(afs_v2net(vnode), cbi); in afs_start_fs_iteration()
144 struct afs_vnode *vnode = fc->vnode; in afs_select_fileserver() local
190 write_lock(&vnode->volume->servers_lock); in afs_select_fileserver()
192 write_unlock(&vnode->volume->servers_lock); in afs_select_fileserver()
194 set_bit(AFS_VOLUME_NEEDS_UPDATE, &vnode->volume->flags); in afs_select_fileserver()
195 error = afs_check_volume_status(vnode->volume, fc->key); in afs_select_fileserver()
199 if (test_bit(AFS_VOLUME_DELETED, &vnode->volume->flags)) { in afs_select_fileserver()
207 if (vnode->volume->servers == fc->server_list) { in afs_select_fileserver()
227 if (!test_and_set_bit(AFS_VOLUME_OFFLINE, &vnode->volume->flags)) { in afs_select_fileserver()
228 afs_busy(vnode->volume, fc->ac.abort_code); in afs_select_fileserver()
229 clear_bit(AFS_VOLUME_BUSY, &vnode->volume->flags); in afs_select_fileserver()
251 if (!test_and_set_bit(AFS_VOLUME_BUSY, &vnode->volume->flags)) { in afs_select_fileserver()
252 afs_busy(vnode->volume, fc->ac.abort_code); in afs_select_fileserver()
253 clear_bit(AFS_VOLUME_OFFLINE, &vnode->volume->flags); in afs_select_fileserver()
282 set_bit(AFS_VOLUME_WAIT, &vnode->volume->flags); in afs_select_fileserver()
283 set_bit(AFS_VOLUME_NEEDS_UPDATE, &vnode->volume->flags); in afs_select_fileserver()
284 error = afs_check_volume_status(vnode->volume, fc->key); in afs_select_fileserver()
297 if (vnode->volume->servers == fc->server_list) { in afs_select_fileserver()
305 clear_bit(AFS_VOLUME_OFFLINE, &vnode->volume->flags); in afs_select_fileserver()
306 clear_bit(AFS_VOLUME_BUSY, &vnode->volume->flags); in afs_select_fileserver()
335 afs_put_cb_interest(afs_v2net(vnode), fc->cbi); in afs_select_fileserver()
337 afs_put_serverlist(afs_v2net(vnode), fc->server_list); in afs_select_fileserver()
344 error = afs_check_volume_status(vnode->volume, fc->key); in afs_select_fileserver()
348 if (!afs_start_fs_iteration(fc, vnode)) in afs_select_fileserver()
351 _debug("__ VOL %llx __", vnode->volume->vid); in afs_select_fileserver()
352 error = afs_probe_fileservers(afs_v2net(vnode), fc->key, fc->server_list); in afs_select_fileserver()
370 afs_put_cb_interest(afs_v2net(vnode), fc->cbi); in afs_select_fileserver()
412 error = afs_register_server_cb_interest(vnode, fc->server_list, in afs_select_fileserver()
418 rcu_dereference_protected(vnode->cb_interest, in afs_select_fileserver()
419 lockdep_is_held(&vnode->io_lock))); in afs_select_fileserver()
488 struct afs_vnode *vnode = fc->vnode; in afs_select_current_fileserver() local
495 cbi = rcu_dereference_protected(vnode->cb_interest, in afs_select_current_fileserver()
496 lockdep_is_held(&vnode->io_lock)); in afs_select_current_fileserver()
618 struct afs_net *net = afs_v2net(fc->vnode); in afs_end_vnode_operation()
626 mutex_unlock(&fc->vnode->io_lock); in afs_end_vnode_operation()