Lines Matching refs:fc
646 struct afs_fs_cursor fc; in afs_do_lookup() local
736 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_do_lookup()
737 while (afs_select_fileserver(&fc)) { in afs_do_lookup()
739 &fc.cbi->server->flags)) { in afs_do_lookup()
740 fc.ac.abort_code = RX_INVALID_OPERATION; in afs_do_lookup()
741 fc.ac.error = -ECONNABORTED; in afs_do_lookup()
745 iget_data.cb_s_break = fc.cbi->server->cb_s_break; in afs_do_lookup()
746 afs_fs_inline_bulk_status(&fc, in afs_do_lookup()
753 if (fc.ac.error == 0) in afs_do_lookup()
754 cbi = afs_get_cb_interest(fc.cbi); in afs_do_lookup()
755 if (fc.ac.abort_code == RX_INVALID_OPERATION) in afs_do_lookup()
756 set_bit(AFS_SERVER_FL_NO_IBULK, &fc.cbi->server->flags); in afs_do_lookup()
757 inode = ERR_PTR(afs_end_vnode_operation(&fc)); in afs_do_lookup()
762 if (fc.ac.abort_code != RX_INVALID_OPERATION) in afs_do_lookup()
771 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_do_lookup()
772 while (afs_select_fileserver(&fc)) { in afs_do_lookup()
774 iget_data.cb_s_break = fc.cbi->server->cb_s_break; in afs_do_lookup()
776 afs_fs_fetch_status(&fc, in afs_do_lookup()
783 if (fc.ac.error == 0) in afs_do_lookup()
784 cbi = afs_get_cb_interest(fc.cbi); in afs_do_lookup()
785 inode = ERR_PTR(afs_end_vnode_operation(&fc)); in afs_do_lookup()
811 afs_vnode_commit_status(&fc, iv, in afs_do_lookup()
1218 static void afs_vnode_new_inode(struct afs_fs_cursor *fc, in afs_vnode_new_inode() argument
1226 if (fc->ac.error < 0) in afs_vnode_new_inode()
1229 inode = afs_iget(fc->vnode->vfs_inode.i_sb, fc->key, in afs_vnode_new_inode()
1230 new_data, new_scb, fc->cbi, fc->vnode); in afs_vnode_new_inode()
1235 fc->ac.error = PTR_ERR(inode); in afs_vnode_new_inode()
1241 if (fc->ac.error == 0) in afs_vnode_new_inode()
1242 afs_cache_permit(vnode, fc->key, vnode->cb_break, new_scb); in afs_vnode_new_inode()
1246 static void afs_prep_for_new_inode(struct afs_fs_cursor *fc, in afs_prep_for_new_inode() argument
1249 iget_data->volume = fc->vnode->volume; in afs_prep_for_new_inode()
1250 iget_data->cb_v_break = fc->vnode->volume->cb_v_break; in afs_prep_for_new_inode()
1251 iget_data->cb_s_break = fc->cbi->server->cb_s_break; in afs_prep_for_new_inode()
1259 static void afs_update_dentry_version(struct afs_fs_cursor *fc, in afs_update_dentry_version() argument
1263 if (fc->ac.error == 0) in afs_update_dentry_version()
1275 struct afs_fs_cursor fc; in afs_mkdir() local
1297 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_mkdir()
1300 while (afs_select_fileserver(&fc)) { in afs_mkdir()
1301 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_mkdir()
1302 afs_prep_for_new_inode(&fc, &iget_data); in afs_mkdir()
1303 afs_fs_create(&fc, dentry->d_name.name, mode, in afs_mkdir()
1307 afs_check_for_remote_deletion(&fc, dvnode); in afs_mkdir()
1308 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_mkdir()
1310 afs_update_dentry_version(&fc, dentry, &scb[0]); in afs_mkdir()
1311 afs_vnode_new_inode(&fc, dentry, &iget_data, &scb[1]); in afs_mkdir()
1312 ret = afs_end_vnode_operation(&fc); in afs_mkdir()
1360 struct afs_fs_cursor fc; in afs_rmdir() local
1393 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_rmdir()
1396 while (afs_select_fileserver(&fc)) { in afs_rmdir()
1397 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_rmdir()
1398 afs_fs_remove(&fc, vnode, dentry->d_name.name, true, scb); in afs_rmdir()
1401 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_rmdir()
1403 afs_update_dentry_version(&fc, dentry, scb); in afs_rmdir()
1404 ret = afs_end_vnode_operation(&fc); in afs_rmdir()
1472 struct afs_fs_cursor fc; in afs_unlink() local
1518 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_unlink()
1522 while (afs_select_fileserver(&fc)) { in afs_unlink()
1523 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_unlink()
1524 fc.cb_break_2 = afs_calc_vnode_cb_break(vnode); in afs_unlink()
1526 if (test_bit(AFS_SERVER_FL_IS_YFS, &fc.cbi->server->flags) && in afs_unlink()
1527 !test_bit(AFS_SERVER_FL_NO_RM2, &fc.cbi->server->flags)) { in afs_unlink()
1528 yfs_fs_remove_file2(&fc, vnode, dentry->d_name.name, in afs_unlink()
1530 if (fc.ac.error != -ECONNABORTED || in afs_unlink()
1531 fc.ac.abort_code != RXGEN_OPCODE) in afs_unlink()
1533 set_bit(AFS_SERVER_FL_NO_RM2, &fc.cbi->server->flags); in afs_unlink()
1536 afs_fs_remove(&fc, vnode, dentry->d_name.name, false, &scb[0]); in afs_unlink()
1539 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_unlink()
1541 afs_vnode_commit_status(&fc, vnode, fc.cb_break_2, in afs_unlink()
1543 afs_update_dentry_version(&fc, dentry, &scb[0]); in afs_unlink()
1544 ret = afs_end_vnode_operation(&fc); in afs_unlink()
1572 struct afs_fs_cursor fc; in afs_create() local
1599 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_create()
1602 while (afs_select_fileserver(&fc)) { in afs_create()
1603 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_create()
1604 afs_prep_for_new_inode(&fc, &iget_data); in afs_create()
1605 afs_fs_create(&fc, dentry->d_name.name, mode, in afs_create()
1609 afs_check_for_remote_deletion(&fc, dvnode); in afs_create()
1610 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_create()
1612 afs_update_dentry_version(&fc, dentry, &scb[0]); in afs_create()
1613 afs_vnode_new_inode(&fc, dentry, &iget_data, &scb[1]); in afs_create()
1614 ret = afs_end_vnode_operation(&fc); in afs_create()
1646 struct afs_fs_cursor fc; in afs_link() local
1674 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_link()
1678 afs_end_vnode_operation(&fc); in afs_link()
1682 while (afs_select_fileserver(&fc)) { in afs_link()
1683 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_link()
1684 fc.cb_break_2 = afs_calc_vnode_cb_break(vnode); in afs_link()
1685 afs_fs_link(&fc, vnode, dentry->d_name.name, in afs_link()
1689 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_link()
1691 afs_vnode_commit_status(&fc, vnode, fc.cb_break_2, in afs_link()
1694 afs_update_dentry_version(&fc, dentry, &scb[0]); in afs_link()
1698 ret = afs_end_vnode_operation(&fc); in afs_link()
1731 struct afs_fs_cursor fc; in afs_symlink() local
1761 if (afs_begin_vnode_operation(&fc, dvnode, key, true)) { in afs_symlink()
1764 while (afs_select_fileserver(&fc)) { in afs_symlink()
1765 fc.cb_break = afs_calc_vnode_cb_break(dvnode); in afs_symlink()
1766 afs_prep_for_new_inode(&fc, &iget_data); in afs_symlink()
1767 afs_fs_symlink(&fc, dentry->d_name.name, content, in afs_symlink()
1771 afs_check_for_remote_deletion(&fc, dvnode); in afs_symlink()
1772 afs_vnode_commit_status(&fc, dvnode, fc.cb_break, in afs_symlink()
1774 afs_update_dentry_version(&fc, dentry, &scb[0]); in afs_symlink()
1775 afs_vnode_new_inode(&fc, dentry, &iget_data, &scb[1]); in afs_symlink()
1776 ret = afs_end_vnode_operation(&fc); in afs_symlink()
1809 struct afs_fs_cursor fc; in afs_rename() local
1892 if (afs_begin_vnode_operation(&fc, orig_dvnode, key, true)) { in afs_rename()
1901 afs_end_vnode_operation(&fc); in afs_rename()
1910 while (afs_select_fileserver(&fc)) { in afs_rename()
1911 fc.cb_break = afs_calc_vnode_cb_break(orig_dvnode); in afs_rename()
1912 fc.cb_break_2 = afs_calc_vnode_cb_break(new_dvnode); in afs_rename()
1913 afs_fs_rename(&fc, old_dentry->d_name.name, in afs_rename()
1918 afs_vnode_commit_status(&fc, orig_dvnode, fc.cb_break, in afs_rename()
1921 afs_vnode_commit_status(&fc, new_dvnode, fc.cb_break_2, in afs_rename()
1925 ret = afs_end_vnode_operation(&fc); in afs_rename()
1961 afs_update_dentry_version(&fc, old_dentry, &scb[1]); in afs_rename()
1962 afs_update_dentry_version(&fc, new_dentry, &scb[1]); in afs_rename()
1964 afs_update_dentry_version(&fc, old_dentry, &scb[0]); in afs_rename()
1965 afs_update_dentry_version(&fc, new_dentry, &scb[0]); in afs_rename()