Lines Matching refs:vnode

120 bool afs_check_validity(const struct afs_vnode *vnode)  in afs_check_validity()  argument
122 const struct afs_volume *volume = vnode->volume; in afs_check_validity()
125 if (test_bit(AFS_VNODE_DELETED, &vnode->flags)) in afs_check_validity()
129 atomic64_read(&vnode->cb_expires_at) <= deadline || in afs_check_validity()
131 vnode->cb_ro_snapshot != atomic_read(&volume->cb_ro_snapshot) || in afs_check_validity()
132 vnode->cb_scrub != atomic_read(&volume->cb_scrub) || in afs_check_validity()
133 test_bit(AFS_VNODE_ZAP_DATA, &vnode->flags)) { in afs_check_validity()
358 static void afs_zap_data(struct afs_vnode *vnode) in afs_zap_data() argument
360 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode); in afs_zap_data()
362 afs_invalidate_cache(vnode, 0); in afs_zap_data()
367 if (S_ISREG(vnode->netfs.inode.i_mode)) in afs_zap_data()
368 filemap_invalidate_inode(&vnode->netfs.inode, true, 0, LLONG_MAX); in afs_zap_data()
370 filemap_invalidate_inode(&vnode->netfs.inode, false, 0, LLONG_MAX); in afs_zap_data()
382 int afs_validate(struct afs_vnode *vnode, struct key *key) in afs_validate() argument
384 struct afs_volume *volume = vnode->volume; in afs_validate()
391 vnode->fid.vid, vnode->fid.vnode, vnode->flags, in afs_validate()
394 if (afs_check_validity(vnode)) in afs_validate()
395 return test_bit(AFS_VNODE_DELETED, &vnode->flags) ? -ESTALE : 0; in afs_validate()
397 ret = down_write_killable(&vnode->validate_lock); in afs_validate()
401 if (test_bit(AFS_VNODE_DELETED, &vnode->flags)) { in afs_validate()
421 if (vnode->cb_ro_snapshot != cb_ro_snapshot || in afs_validate()
422 vnode->cb_scrub != cb_scrub) in afs_validate()
423 unmap_mapping_pages(vnode->netfs.inode.i_mapping, 0, 0, false); in afs_validate()
425 if (vnode->cb_ro_snapshot != cb_ro_snapshot || in afs_validate()
426 vnode->cb_scrub != cb_scrub || in afs_validate()
429 atomic64_read(&vnode->cb_expires_at) <= deadline in afs_validate()
431 ret = afs_fetch_status(vnode, key, false, NULL); in afs_validate()
434 set_bit(AFS_VNODE_DELETED, &vnode->flags); in afs_validate()
440 _debug("new promise [fl=%lx]", vnode->flags); in afs_validate()
452 vnode->cb_ro_snapshot, cb_ro_snapshot, in afs_validate()
453 vnode->cb_scrub, cb_scrub); in afs_validate()
454 if (vnode->cb_scrub != cb_scrub) in afs_validate()
456 vnode->cb_ro_snapshot = cb_ro_snapshot; in afs_validate()
457 vnode->cb_scrub = cb_scrub; in afs_validate()
461 zap |= test_and_clear_bit(AFS_VNODE_ZAP_DATA, &vnode->flags); in afs_validate()
463 afs_zap_data(vnode); in afs_validate()
464 up_write(&vnode->validate_lock); in afs_validate()
471 up_write(&vnode->validate_lock); in afs_validate()