Lines Matching full:server
78 static void nfs_mark_return_delegation(struct nfs_server *server, in nfs_mark_return_delegation() argument
82 set_bit(NFS4SERV_DELEGRETURN, &server->delegation_flags); in nfs_mark_return_delegation()
83 set_bit(NFS4CLNT_DELEGRETURN, &server->nfs_client->cl_state); in nfs_mark_return_delegation()
335 struct nfs_server *server, int err) in nfs_abort_delegation_return() argument
342 &server->delegation_flags); in nfs_abort_delegation_return()
344 &server->nfs_client->cl_state); in nfs_abort_delegation_return()
375 struct nfs_server *server) in nfs_detach_delegation() argument
377 struct nfs_client *clp = server->nfs_client; in nfs_detach_delegation()
389 struct nfs_server *server = NFS_SERVER(inode); in nfs_inode_detach_delegation() local
395 delegation = nfs_detach_delegation(nfsi, delegation, server); in nfs_inode_detach_delegation()
446 struct nfs_server *server = NFS_SERVER(inode); in nfs_inode_set_delegation() local
447 struct nfs_client *clp = server->nfs_client; in nfs_inode_set_delegation()
493 dfprintk(FILE, "%s: server %s handed out " in nfs_inode_set_delegation()
526 list_add_tail_rcu(&delegation->super_list, &server->delegations); in nfs_inode_set_delegation()
550 * Basic procedure for returning a delegation to the server
554 struct nfs_server *server = NFS_SERVER(inode); in nfs_end_delegation_return() local
576 err = nfs4_wait_clnt_recover(server->nfs_client); in nfs_end_delegation_return()
580 nfs_abort_delegation_return(delegation, server, err); in nfs_end_delegation_return()
605 static int nfs_server_return_marked_delegations(struct nfs_server *server, in nfs_server_return_marked_delegations() argument
616 &server->delegation_flags)) in nfs_server_return_marked_delegations()
622 * list delegation in the server from the delegations in nfs_server_return_marked_delegations()
634 delegation = list_entry_rcu(server->delegations.next, in nfs_server_return_marked_delegations()
636 list_for_each_entry_from_rcu(delegation, &server->delegations, super_list) { in nfs_server_return_marked_delegations()
669 set_bit(NFS4SERV_DELEGRETURN, &server->delegation_flags); in nfs_server_return_marked_delegations()
670 set_bit(NFS4CLNT_DELEGRETURN, &server->nfs_client->cl_state); in nfs_server_return_marked_delegations()
679 static bool nfs_server_clear_delayed_delegations(struct nfs_server *server) in nfs_server_clear_delayed_delegations() argument
685 &server->delegation_flags)) in nfs_server_clear_delayed_delegations()
687 list_for_each_entry_rcu (d, &server->delegations, super_list) { in nfs_server_clear_delayed_delegations()
690 nfs_mark_return_delegation(server, d); in nfs_server_clear_delayed_delegations()
700 struct nfs_server *server; in nfs_client_clear_delayed_delegations() local
706 list_for_each_entry_rcu (server, &clp->cl_superblocks, client_link) { in nfs_client_clear_delayed_delegations()
707 if (nfs_server_clear_delayed_delegations(server)) in nfs_client_clear_delayed_delegations()
883 nfs_mark_return_if_closed_delegation(struct nfs_server *server, in nfs_mark_return_if_closed_delegation() argument
896 nfs_mark_return_delegation(server, delegation); in nfs_mark_return_if_closed_delegation()
903 static bool nfs_server_mark_return_all_delegations(struct nfs_server *server) in nfs_server_mark_return_all_delegations() argument
908 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_server_mark_return_all_delegations()
909 nfs_mark_return_delegation(server, delegation); in nfs_server_mark_return_all_delegations()
917 struct nfs_server *server; in nfs_client_mark_return_all_delegations() local
920 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_client_mark_return_all_delegations()
921 nfs_server_mark_return_all_delegations(server); in nfs_client_mark_return_all_delegations()
944 * @server: pointer to nfs_server to process
947 void nfs_server_return_all_delegations(struct nfs_server *server) in nfs_server_return_all_delegations() argument
949 struct nfs_client *clp = server->nfs_client; in nfs_server_return_all_delegations()
956 need_wait = nfs_server_mark_return_all_delegations(server); in nfs_server_return_all_delegations()
965 static void nfs_mark_return_unused_delegation_types(struct nfs_server *server, in nfs_mark_return_unused_delegation_types() argument
970 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_mark_return_unused_delegation_types()
974 nfs_mark_return_if_closed_delegation(server, delegation); in nfs_mark_return_unused_delegation_types()
981 struct nfs_server *server; in nfs_client_mark_return_unused_delegation_types() local
984 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_client_mark_return_unused_delegation_types()
985 nfs_mark_return_unused_delegation_types(server, flags); in nfs_client_mark_return_unused_delegation_types()
1084 static void nfs_mark_return_unreferenced_delegations(struct nfs_server *server) in nfs_mark_return_unreferenced_delegations() argument
1088 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_mark_return_unreferenced_delegations()
1091 nfs_mark_return_if_closed_delegation(server, delegation); in nfs_mark_return_unreferenced_delegations()
1102 struct nfs_server *server; in nfs_expire_unreferenced_delegations() local
1105 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_expire_unreferenced_delegations()
1106 nfs_mark_return_unreferenced_delegations(server); in nfs_expire_unreferenced_delegations()
1122 struct nfs_server *server = NFS_SERVER(inode); in nfs_async_inode_return_delegation() local
1123 struct nfs_client *clp = server->nfs_client; in nfs_async_inode_return_delegation()
1133 nfs_mark_return_delegation(server, delegation); in nfs_async_inode_return_delegation()
1147 nfs_delegation_find_inode_server(struct nfs_server *server, in nfs_delegation_find_inode_server() argument
1154 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_delegation_find_inode_server()
1159 if (nfs_sb_active(server->super)) { in nfs_delegation_find_inode_server()
1160 freeme = server->super; in nfs_delegation_find_inode_server()
1189 struct nfs_server *server; in nfs_delegation_find_inode() local
1193 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) { in nfs_delegation_find_inode()
1194 res = nfs_delegation_find_inode_server(server, fhandle); in nfs_delegation_find_inode()
1204 static void nfs_delegation_mark_reclaim_server(struct nfs_server *server) in nfs_delegation_mark_reclaim_server() argument
1208 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_delegation_mark_reclaim_server()
1226 struct nfs_server *server; in nfs_delegation_mark_reclaim() local
1229 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_delegation_mark_reclaim()
1230 nfs_delegation_mark_reclaim_server(server); in nfs_delegation_mark_reclaim()
1234 static int nfs_server_reap_unclaimed_delegations(struct nfs_server *server, in nfs_server_reap_unclaimed_delegations() argument
1241 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_server_reap_unclaimed_delegations()
1256 server) != NULL) in nfs_server_reap_unclaimed_delegations()
1287 static void nfs_mark_test_expired_delegation(struct nfs_server *server, in nfs_mark_test_expired_delegation() argument
1294 set_bit(NFS4SERV_DELEGATION_EXPIRED, &server->delegation_flags); in nfs_mark_test_expired_delegation()
1295 set_bit(NFS4CLNT_DELEGATION_EXPIRED, &server->nfs_client->cl_state); in nfs_mark_test_expired_delegation()
1298 static void nfs_inode_mark_test_expired_delegation(struct nfs_server *server, in nfs_inode_mark_test_expired_delegation() argument
1306 nfs_mark_test_expired_delegation(server, delegation); in nfs_inode_mark_test_expired_delegation()
1311 static void nfs_delegation_mark_test_expired_server(struct nfs_server *server) in nfs_delegation_mark_test_expired_server() argument
1315 list_for_each_entry_rcu(delegation, &server->delegations, super_list) in nfs_delegation_mark_test_expired_server()
1316 nfs_mark_test_expired_delegation(server, delegation); in nfs_delegation_mark_test_expired_server()
1323 * Iterates through all the delegations associated with this server and
1328 struct nfs_server *server; in nfs_mark_test_expired_all_delegations() local
1331 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_mark_test_expired_all_delegations()
1332 nfs_delegation_mark_test_expired_server(server); in nfs_mark_test_expired_all_delegations()
1340 * Helper for handling "recallable state revoked" status from server.
1353 struct nfs_server *server = NFS_SERVER(inode); in nfs_delegation_test_free_expired() local
1354 const struct nfs4_minor_version_ops *ops = server->nfs_client->cl_mvops; in nfs_delegation_test_free_expired()
1359 status = ops->test_and_free_expired(server, stateid, cred); in nfs_delegation_test_free_expired()
1364 static int nfs_server_reap_expired_delegations(struct nfs_server *server, in nfs_server_reap_expired_delegations() argument
1371 unsigned long gen = ++server->delegation_gen; in nfs_server_reap_expired_delegations()
1374 &server->delegation_flags)) in nfs_server_reap_expired_delegations()
1378 list_for_each_entry_rcu(delegation, &server->delegations, super_list) { in nfs_server_reap_expired_delegations()
1399 if (!nfs4_server_rebooted(server->nfs_client)) { in nfs_server_reap_expired_delegations()
1404 nfs_inode_mark_test_expired_delegation(server,inode); in nfs_server_reap_expired_delegations()
1405 set_bit(NFS4SERV_DELEGATION_EXPIRED, &server->delegation_flags); in nfs_server_reap_expired_delegations()
1407 &server->nfs_client->cl_state); in nfs_server_reap_expired_delegations()
1419 * Iterates through all the delegations associated with this server and
1421 * expected to be called in cases where the server may have lost its
1459 struct nfs_server *server; in nfs_delegations_present() local
1463 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) in nfs_delegations_present()
1464 if (!list_empty(&server->delegations)) { in nfs_delegations_present()