Lines Matching defs:vnode

107 void afs_clear_permits(struct afs_vnode *vnode)
111 spin_lock(&vnode->lock);
112 permits = rcu_dereference_protected(vnode->permit_cache,
113 lockdep_is_held(&vnode->lock));
114 RCU_INIT_POINTER(vnode->permit_cache, NULL);
115 spin_unlock(&vnode->lock);
139 * that returned a vnode status for a particular key. If a callback break
143 void afs_cache_permit(struct afs_vnode *vnode, struct key *key,
153 vnode->fid.vid, vnode->fid.vnode, key_serial(key), caller_access);
160 permits = rcu_dereference(vnode->permit_cache);
173 if (afs_cb_is_broken(cb_break, vnode)) {
191 spin_lock(&vnode->lock);
192 if (permits != rcu_access_pointer(vnode->permit_cache))
194 RCU_INIT_POINTER(vnode->permit_cache, NULL);
195 spin_unlock(&vnode->lock);
203 if (afs_cb_is_broken(cb_break, vnode))
280 spin_lock(&vnode->lock);
281 zap = rcu_access_pointer(vnode->permit_cache);
282 if (!afs_cb_is_broken(cb_break, vnode) && zap == permits)
283 rcu_assign_pointer(vnode->permit_cache, replacement);
286 spin_unlock(&vnode->lock);
294 spin_unlock(&vnode->lock);
303 static bool afs_check_permit_rcu(struct afs_vnode *vnode, struct key *key,
310 vnode->fid.vid, vnode->fid.vnode, key_serial(key));
313 if (key == vnode->volume->cell->anonymous_key) {
314 *_access = vnode->status.anon_access;
319 permits = rcu_dereference(vnode->permit_cache);
342 int afs_check_permit(struct afs_vnode *vnode, struct key *key,
350 vnode->fid.vid, vnode->fid.vnode, key_serial(key));
353 if (key == vnode->volume->cell->anonymous_key) {
355 *_access = vnode->status.anon_access;
359 permits = rcu_dereference(vnode->permit_cache);
381 ret = afs_fetch_status(vnode, key, false, _access);
401 struct afs_vnode *vnode = AFS_FS_I(inode);
407 vnode->fid.vid, vnode->fid.vnode, vnode->flags, mask);
410 key = afs_request_key_rcu(vnode->volume->cell);
415 if (!afs_check_validity(vnode) ||
416 !afs_check_permit_rcu(vnode, key, &access))
419 key = afs_request_key(vnode->volume->cell);
425 ret = afs_validate(vnode, key);
430 ret = afs_check_permit(vnode, key, &access);