Lines Matching defs:dvnode

107 static bool afs_dir_check_page(struct afs_vnode *dvnode, struct page *page,
133 __func__, dvnode->vfs_inode.i_ino, tmp, qty,
135 trace_afs_dir_check_failed(dvnode, off, i_size);
137 trace_afs_file_error(dvnode, -EIO, afs_file_error_dir_bad_magic);
151 afs_stat_v(dvnode, n_read_dir);
161 static bool afs_dir_check_pages(struct afs_vnode *dvnode, struct afs_read *req)
167 if (!afs_dir_check_page(dvnode, req->pages[i], req->actual_len))
173 dvnode->fid.vid, dvnode->fid.vnode,
211 static struct afs_read *afs_read_dir(struct afs_vnode *dvnode, struct key *key)
212 __acquires(&dvnode->validate_lock)
220 i_size = i_size_read(&dvnode->vfs_inode);
222 return ERR_PTR(afs_bad(dvnode, afs_file_error_dir_small));
224 trace_afs_file_error(dvnode, -EFBIG, afs_file_error_dir_big);
246 req->data_version = dvnode->status.data_version; /* May change */
263 n = find_get_pages_contig(dvnode->vfs_inode.i_mapping, i,
268 gfp_t gfp = dvnode->vfs_inode.i_mapping->gfp_mask;
270 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
271 afs_stat_v(dvnode, n_inval);
278 dvnode->vfs_inode.i_mapping,
295 if (down_read_killable(&dvnode->validate_lock) < 0)
298 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
301 up_read(&dvnode->validate_lock);
302 if (down_write_killable(&dvnode->validate_lock) < 0)
305 if (!test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) {
306 trace_afs_reload_dir(dvnode);
307 ret = afs_fetch_data(dvnode, key, req);
318 if (!afs_dir_check_pages(dvnode, req))
323 set_bit(AFS_VNODE_DIR_VALID, &dvnode->flags);
326 downgrade_write(&dvnode->validate_lock);
331 up_write(&dvnode->validate_lock);
338 up_write(&dvnode->validate_lock);
346 static int afs_dir_iterate_block(struct afs_vnode *dvnode,
397 return afs_bad(dvnode, afs_file_error_dir_over_end);
405 return afs_bad(dvnode, afs_file_error_dir_unmarked_ext);
452 struct afs_vnode *dvnode = AFS_FS_I(dir);
467 req = afs_read_dir(dvnode, key);
486 ret = afs_bad(dvnode, afs_file_error_dir_missing_page);
499 ret = afs_dir_iterate_block(dvnode, ctx, dblock, blkoff);
514 up_read(&dvnode->validate_lock);
719 static bool afs_server_supports_ibulk(struct afs_vnode *dvnode)
722 struct afs_volume *volume = dvnode->volume;
735 if (server == dvnode->cb_server) {
757 struct afs_vnode *dvnode = AFS_FS_I(dir), *vnode;
759 afs_dataversion_t data_version = READ_ONCE(dvnode->status.data_version);
770 cookie->fids[i].vid = dvnode->fid.vid;
776 if (!afs_server_supports_ibulk(dvnode))
800 op = afs_alloc_operation(NULL, dvnode->volume);
806 afs_op_set_vnode(op, 0, dvnode);
943 struct afs_vnode *dvnode = AFS_FS_I(dir);
951 dvnode->fid.vid, dvnode->fid.vnode, dentry, dentry);
960 if (test_bit(AFS_VNODE_DELETED, &dvnode->flags)) {
965 key = afs_request_key(dvnode->volume->cell);
971 ret = afs_validate(dvnode, key);
985 afs_stat_v(dvnode, n_lookup);
998 trace_afs_lookup(dvnode, &d->d_name, &fid);
1000 trace_afs_lookup(dvnode, &dentry->d_name, &fid);
1011 struct afs_vnode *dvnode;
1023 dvnode = AFS_FS_I(dir);
1024 if (test_bit(AFS_VNODE_DELETED, &dvnode->flags))
1027 if (!afs_check_validity(dvnode))
1035 dir_version = (long)READ_ONCE(dvnode->status.data_version);
1038 dir_version = (long)READ_ONCE(dvnode->invalid_before);
1271 struct afs_vnode *dvnode = dvp->vnode;
1275 down_write(&dvnode->validate_lock);
1276 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
1277 dvnode->status.data_version == dvp->dv_before + dvp->dv_delta)
1278 afs_edit_dir_add(dvnode, &op->dentry->d_name, &vp->fid,
1280 up_write(&dvnode->validate_lock);
1306 struct afs_vnode *dvnode = AFS_FS_I(dir);
1309 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode);
1311 op = afs_alloc_operation(NULL, dvnode->volume);
1317 afs_op_set_vnode(op, 0, dvnode);
1355 struct afs_vnode *dvnode = dvp->vnode;
1360 down_write(&dvnode->validate_lock);
1361 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
1362 dvnode->status.data_version == dvp->dv_before + dvp->dv_delta)
1363 afs_edit_dir_remove(dvnode, &op->dentry->d_name,
1365 up_write(&dvnode->validate_lock);
1390 struct afs_vnode *dvnode = AFS_FS_I(dir), *vnode = NULL;
1394 dvnode->fid.vid, dvnode->fid.vnode, dentry);
1396 op = afs_alloc_operation(NULL, dvnode->volume);
1400 afs_op_set_vnode(op, 0, dvnode);
1441 struct afs_vnode *dvnode = op->file[0].vnode;
1454 } else if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) {
1490 struct afs_vnode *dvnode = dvp->vnode;
1493 down_write(&dvnode->validate_lock);
1494 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags) &&
1495 dvnode->status.data_version == dvp->dv_before + dvp->dv_delta)
1496 afs_edit_dir_remove(dvnode, &op->dentry->d_name,
1498 up_write(&dvnode->validate_lock);
1523 struct afs_vnode *dvnode = AFS_FS_I(dir);
1528 dvnode->fid.vid, dvnode->fid.vnode, dentry);
1533 op = afs_alloc_operation(NULL, dvnode->volume);
1537 afs_op_set_vnode(op, 0, dvnode);
1554 op->error = afs_sillyrename(dvnode, vnode, dentry, op->key);
1605 struct afs_vnode *dvnode = AFS_FS_I(dir);
1609 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode);
1614 op = afs_alloc_operation(NULL, dvnode->volume);
1620 afs_op_set_vnode(op, 0, dvnode);
1677 struct afs_vnode *dvnode = AFS_FS_I(dir);
1683 dvnode->fid.vid, dvnode->fid.vnode,
1689 op = afs_alloc_operation(NULL, dvnode->volume);
1695 afs_op_set_vnode(op, 0, dvnode);
1730 struct afs_vnode *dvnode = AFS_FS_I(dir);
1734 dvnode->fid.vid, dvnode->fid.vnode, dentry,
1745 op = afs_alloc_operation(NULL, dvnode->volume);
1751 afs_op_set_vnode(op, 0, dvnode);
1964 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host);
1966 _enter("{{%llx:%llu}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, page->index);
1971 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
1972 afs_stat_v(dvnode, n_relpg);
1984 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host);
1991 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags))
1992 afs_stat_v(dvnode, n_inval);