Lines Matching refs:vnode

82 void afs_clear_permits(struct afs_vnode *vnode)  in afs_clear_permits()  argument
86 spin_lock(&vnode->lock); in afs_clear_permits()
87 permits = rcu_dereference_protected(vnode->permit_cache, in afs_clear_permits()
88 lockdep_is_held(&vnode->lock)); in afs_clear_permits()
89 RCU_INIT_POINTER(vnode->permit_cache, NULL); in afs_clear_permits()
90 vnode->cb_break++; in afs_clear_permits()
91 spin_unlock(&vnode->lock); in afs_clear_permits()
120 void afs_cache_permit(struct afs_vnode *vnode, struct key *key, in afs_cache_permit() argument
124 afs_access_t caller_access = READ_ONCE(vnode->status.caller_access); in afs_cache_permit()
130 vnode->fid.vid, vnode->fid.vnode, key_serial(key), caller_access); in afs_cache_permit()
137 permits = rcu_dereference(vnode->permit_cache); in afs_cache_permit()
150 if (cb_break != afs_cb_break_sum(vnode, vnode->cb_interest)) { in afs_cache_permit()
168 spin_lock(&vnode->lock); in afs_cache_permit()
169 if (permits != rcu_access_pointer(vnode->permit_cache)) in afs_cache_permit()
171 RCU_INIT_POINTER(vnode->permit_cache, NULL); in afs_cache_permit()
172 spin_unlock(&vnode->lock); in afs_cache_permit()
180 if (cb_break != afs_cb_break_sum(vnode, vnode->cb_interest)) in afs_cache_permit()
257 spin_lock(&vnode->lock); in afs_cache_permit()
258 zap = rcu_access_pointer(vnode->permit_cache); in afs_cache_permit()
259 if (cb_break == afs_cb_break_sum(vnode, vnode->cb_interest) && in afs_cache_permit()
261 rcu_assign_pointer(vnode->permit_cache, replacement); in afs_cache_permit()
264 spin_unlock(&vnode->lock); in afs_cache_permit()
271 spin_unlock(&vnode->lock); in afs_cache_permit()
285 int afs_check_permit(struct afs_vnode *vnode, struct key *key, in afs_check_permit() argument
293 vnode->fid.vid, vnode->fid.vnode, key_serial(key)); in afs_check_permit()
296 if (key == vnode->volume->cell->anonymous_key) { in afs_check_permit()
298 *_access = vnode->status.anon_access; in afs_check_permit()
302 permits = rcu_dereference(vnode->permit_cache); in afs_check_permit()
324 ret = afs_fetch_status(vnode, key, false); in afs_check_permit()
330 *_access = vnode->status.caller_access; in afs_check_permit()
344 struct afs_vnode *vnode = AFS_FS_I(inode); in afs_permission() local
353 vnode->fid.vid, vnode->fid.vnode, vnode->flags, mask); in afs_permission()
355 key = afs_request_key(vnode->volume->cell); in afs_permission()
361 ret = afs_validate(vnode, key); in afs_permission()
366 ret = afs_check_permit(vnode, key, &access); in afs_permission()