Lines Matching refs:dvnode

111 static bool afs_dir_check_page(struct afs_vnode *dvnode, struct page *page,  in afs_dir_check_page()  argument
137 __func__, dvnode->vfs_inode.i_ino, tmp, qty, in afs_dir_check_page()
139 trace_afs_dir_check_failed(dvnode, off, i_size); in afs_dir_check_page()
154 afs_stat_v(dvnode, n_read_dir); in afs_dir_check_page()
182 static struct afs_read *afs_read_dir(struct afs_vnode *dvnode, struct key *key) in afs_read_dir() argument
183 __acquires(&dvnode->validate_lock) in afs_read_dir()
191 i_size = i_size_read(&dvnode->vfs_inode); in afs_read_dir()
216 req->data_version = dvnode->status.data_version; /* May change */ in afs_read_dir()
233 n = find_get_pages_contig(dvnode->vfs_inode.i_mapping, i, in afs_read_dir()
238 gfp_t gfp = dvnode->vfs_inode.i_mapping->gfp_mask; in afs_read_dir()
240 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_read_dir()
241 afs_stat_v(dvnode, n_inval); in afs_read_dir()
248 dvnode->vfs_inode.i_mapping, in afs_read_dir()
266 if (down_read_killable(&dvnode->validate_lock) < 0) in afs_read_dir()
269 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_read_dir()
272 up_read(&dvnode->validate_lock); in afs_read_dir()
273 if (down_write_killable(&dvnode->validate_lock) < 0) in afs_read_dir()
276 if (!test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) { in afs_read_dir()
277 ret = afs_fetch_data(dvnode, key, req); in afs_read_dir()
289 if (!afs_dir_check_page(dvnode, req->pages[i], in afs_read_dir()
295 set_bit(AFS_VNODE_DIR_VALID, &dvnode->flags); in afs_read_dir()
298 downgrade_write(&dvnode->validate_lock); in afs_read_dir()
303 up_write(&dvnode->validate_lock); in afs_read_dir()
310 up_write(&dvnode->validate_lock); in afs_read_dir()
412 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_dir_iterate() local
427 req = afs_read_dir(dvnode, key); in afs_dir_iterate()
473 up_read(&dvnode->validate_lock); in afs_dir_iterate()
608 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_do_lookup() local
622 read_seqlock_excl(&dvnode->cb_lock); in afs_do_lookup()
623 if (dvnode->cb_interest && in afs_do_lookup()
624 dvnode->cb_interest->server && in afs_do_lookup()
625 test_bit(AFS_SERVER_FL_NO_IBULK, &dvnode->cb_interest->server->flags)) in afs_do_lookup()
627 read_sequnlock_excl(&dvnode->cb_lock); in afs_do_lookup()
644 data.volume = dvnode->volume; in afs_do_lookup()
670 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_do_lookup()
679 afs_v2net(dvnode), in afs_do_lookup()
705 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_do_lookup()
708 afs_v2net(dvnode), in afs_do_lookup()
752 afs_put_cb_interest(afs_v2net(dvnode), cbi); in afs_do_lookup()
823 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_lookup() local
830 dvnode->fid.vid, dvnode->fid.vnode, dentry, dentry); in afs_lookup()
839 if (test_bit(AFS_VNODE_DELETED, &dvnode->flags)) { in afs_lookup()
844 key = afs_request_key(dvnode->volume->cell); in afs_lookup()
850 ret = afs_validate(dvnode, key); in afs_lookup()
864 afs_stat_v(dvnode, n_lookup); in afs_lookup()
871 (void *)(unsigned long)dvnode->status.data_version; in afs_lookup()
1099 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_mkdir() local
1102 u64 data_version = dvnode->status.data_version; in afs_mkdir()
1108 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode); in afs_mkdir()
1110 key = afs_request_key(dvnode->volume->cell); in afs_mkdir()
1117 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_mkdir()
1119 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_mkdir()
1125 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_mkdir()
1135 test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_mkdir()
1136 afs_edit_dir_add(dvnode, &dentry->d_name, &newfid, in afs_mkdir()
1172 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_rmdir() local
1174 u64 data_version = dvnode->status.data_version; in afs_rmdir()
1178 dvnode->fid.vid, dvnode->fid.vnode, dentry); in afs_rmdir()
1180 key = afs_request_key(dvnode->volume->cell); in afs_rmdir()
1187 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_rmdir()
1189 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_rmdir()
1194 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_rmdir()
1198 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_rmdir()
1199 afs_edit_dir_remove(dvnode, &dentry->d_name, in afs_rmdir()
1263 struct afs_vnode *dvnode = AFS_FS_I(dir), *vnode; in afs_unlink() local
1266 u64 data_version = dvnode->status.data_version; in afs_unlink()
1270 dvnode->fid.vid, dvnode->fid.vnode, dentry); in afs_unlink()
1275 key = afs_request_key(dvnode->volume->cell); in afs_unlink()
1290 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_unlink()
1292 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_unlink()
1297 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_unlink()
1302 (unsigned long)dvnode->status.data_version); in afs_unlink()
1304 test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_unlink()
1305 afs_edit_dir_remove(dvnode, &dentry->d_name, in afs_unlink()
1325 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_create() local
1328 u64 data_version = dvnode->status.data_version; in afs_create()
1334 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode); in afs_create()
1340 key = afs_request_key(dvnode->volume->cell); in afs_create()
1347 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_create()
1349 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_create()
1355 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_create()
1364 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_create()
1365 afs_edit_dir_add(dvnode, &dentry->d_name, &newfid, in afs_create()
1387 struct afs_vnode *dvnode, *vnode; in afs_link() local
1393 dvnode = AFS_FS_I(dir); in afs_link()
1394 data_version = dvnode->status.data_version; in afs_link()
1398 dvnode->fid.vid, dvnode->fid.vnode, in afs_link()
1405 key = afs_request_key(dvnode->volume->cell); in afs_link()
1412 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_link()
1419 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_link()
1424 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_link()
1437 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_link()
1438 afs_edit_dir_add(dvnode, &dentry->d_name, &vnode->fid, in afs_link()
1461 struct afs_vnode *dvnode = AFS_FS_I(dir); in afs_symlink() local
1464 u64 data_version = dvnode->status.data_version; in afs_symlink()
1468 dvnode->fid.vid, dvnode->fid.vnode, dentry, in afs_symlink()
1479 key = afs_request_key(dvnode->volume->cell); in afs_symlink()
1486 if (afs_begin_vnode_operation(&fc, dvnode, key)) { in afs_symlink()
1488 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_symlink()
1495 afs_vnode_commit_status(&fc, dvnode, fc.cb_break); in afs_symlink()
1504 if (test_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_symlink()
1505 afs_edit_dir_add(dvnode, &dentry->d_name, &newfid, in afs_symlink()
1608 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host); in afs_dir_releasepage() local
1610 _enter("{{%x:%u}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, page->index); in afs_dir_releasepage()
1616 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_dir_releasepage()
1617 afs_stat_v(dvnode, n_relpg); in afs_dir_releasepage()
1629 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host); in afs_dir_invalidatepage() local
1636 if (test_and_clear_bit(AFS_VNODE_DIR_VALID, &dvnode->flags)) in afs_dir_invalidatepage()
1637 afs_stat_v(dvnode, n_inval); in afs_dir_invalidatepage()