Lines Matching refs: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))
281 spin_lock(&vnode->lock);
282 zap = rcu_access_pointer(vnode->permit_cache);
283 if (!afs_cb_is_broken(cb_break, vnode) && zap == permits)
284 rcu_assign_pointer(vnode->permit_cache, replacement);
287 spin_unlock(&vnode->lock);
295 spin_unlock(&vnode->lock);
304 static bool afs_check_permit_rcu(struct afs_vnode *vnode, struct key *key,
311 vnode->fid.vid, vnode->fid.vnode, key_serial(key));
314 if (key == vnode->volume->cell->anonymous_key) {
315 *_access = vnode->status.anon_access;
320 permits = rcu_dereference(vnode->permit_cache);
343 int afs_check_permit(struct afs_vnode *vnode, struct key *key,
351 vnode->fid.vid, vnode->fid.vnode, key_serial(key));
354 if (key == vnode->volume->cell->anonymous_key) {
356 *_access = vnode->status.anon_access;
360 permits = rcu_dereference(vnode->permit_cache);
382 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);