Lines Matching full:server
78 static void nfs_mark_return_delegation(struct nfs_server *server,
82 set_bit(NFS4SERV_DELEGRETURN, &server->delegation_flags);
83 set_bit(NFS4CLNT_DELEGRETURN, &server->nfs_client->cl_state);
335 struct nfs_server *server, int err)
342 &server->delegation_flags);
344 &server->nfs_client->cl_state);
375 struct nfs_server *server)
377 struct nfs_client *clp = server->nfs_client;
389 struct nfs_server *server = NFS_SERVER(inode);
395 delegation = nfs_detach_delegation(nfsi, delegation, server);
446 struct nfs_server *server = NFS_SERVER(inode);
447 struct nfs_client *clp = server->nfs_client;
493 dfprintk(FILE, "%s: server %s handed out "
526 list_add_tail_rcu(&delegation->super_list, &server->delegations);
550 * Basic procedure for returning a delegation to the server
554 struct nfs_server *server = NFS_SERVER(inode);
576 err = nfs4_wait_clnt_recover(server->nfs_client);
580 nfs_abort_delegation_return(delegation, server, err);
605 static int nfs_server_return_marked_delegations(struct nfs_server *server,
616 &server->delegation_flags))
622 * list delegation in the server from the delegations
634 delegation = list_entry_rcu(server->delegations.next,
636 list_for_each_entry_from_rcu(delegation, &server->delegations, super_list) {
669 set_bit(NFS4SERV_DELEGRETURN, &server->delegation_flags);
670 set_bit(NFS4CLNT_DELEGRETURN, &server->nfs_client->cl_state);
679 static bool nfs_server_clear_delayed_delegations(struct nfs_server *server)
685 &server->delegation_flags))
687 list_for_each_entry_rcu (d, &server->delegations, super_list) {
690 nfs_mark_return_delegation(server, d);
700 struct nfs_server *server;
706 list_for_each_entry_rcu (server, &clp->cl_superblocks, client_link) {
707 if (nfs_server_clear_delayed_delegations(server))
883 nfs_mark_return_if_closed_delegation(struct nfs_server *server,
896 nfs_mark_return_delegation(server, delegation);
903 static bool nfs_server_mark_return_all_delegations(struct nfs_server *server)
908 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
909 nfs_mark_return_delegation(server, delegation);
917 struct nfs_server *server;
920 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
921 nfs_server_mark_return_all_delegations(server);
944 * @server: pointer to nfs_server to process
947 void nfs_server_return_all_delegations(struct nfs_server *server)
949 struct nfs_client *clp = server->nfs_client;
956 need_wait = nfs_server_mark_return_all_delegations(server);
965 static void nfs_mark_return_unused_delegation_types(struct nfs_server *server,
970 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
974 nfs_mark_return_if_closed_delegation(server, delegation);
981 struct nfs_server *server;
984 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
985 nfs_mark_return_unused_delegation_types(server, flags);
1070 * If the server ACK-ed our FREE_STATEID then clean
1095 static void nfs_mark_return_unreferenced_delegations(struct nfs_server *server)
1099 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
1102 nfs_mark_return_if_closed_delegation(server, delegation);
1113 struct nfs_server *server;
1116 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
1117 nfs_mark_return_unreferenced_delegations(server);
1133 struct nfs_server *server = NFS_SERVER(inode);
1134 struct nfs_client *clp = server->nfs_client;
1144 nfs_mark_return_delegation(server, delegation);
1158 nfs_delegation_find_inode_server(struct nfs_server *server,
1165 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
1170 if (nfs_sb_active(server->super)) {
1171 freeme = server->super;
1200 struct nfs_server *server;
1204 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
1205 res = nfs_delegation_find_inode_server(server, fhandle);
1215 static void nfs_delegation_mark_reclaim_server(struct nfs_server *server)
1219 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
1237 struct nfs_server *server;
1240 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
1241 nfs_delegation_mark_reclaim_server(server);
1245 static int nfs_server_reap_unclaimed_delegations(struct nfs_server *server,
1252 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
1267 server) != NULL)
1298 static void nfs_mark_test_expired_delegation(struct nfs_server *server,
1305 set_bit(NFS4SERV_DELEGATION_EXPIRED, &server->delegation_flags);
1306 set_bit(NFS4CLNT_DELEGATION_EXPIRED, &server->nfs_client->cl_state);
1309 static void nfs_inode_mark_test_expired_delegation(struct nfs_server *server,
1317 nfs_mark_test_expired_delegation(server, delegation);
1322 static void nfs_delegation_mark_test_expired_server(struct nfs_server *server)
1326 list_for_each_entry_rcu(delegation, &server->delegations, super_list)
1327 nfs_mark_test_expired_delegation(server, delegation);
1334 * Iterates through all the delegations associated with this server and
1339 struct nfs_server *server;
1342 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
1343 nfs_delegation_mark_test_expired_server(server);
1351 * Helper for handling "recallable state revoked" status from server.
1364 struct nfs_server *server = NFS_SERVER(inode);
1365 const struct nfs4_minor_version_ops *ops = server->nfs_client->cl_mvops;
1370 status = ops->test_and_free_expired(server, stateid, cred);
1375 static int nfs_server_reap_expired_delegations(struct nfs_server *server,
1382 unsigned long gen = ++server->delegation_gen;
1385 &server->delegation_flags))
1389 list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
1410 if (!nfs4_server_rebooted(server->nfs_client)) {
1415 nfs_inode_mark_test_expired_delegation(server,inode);
1416 set_bit(NFS4SERV_DELEGATION_EXPIRED, &server->delegation_flags);
1418 &server->nfs_client->cl_state);
1430 * Iterates through all the delegations associated with this server and
1432 * expected to be called in cases where the server may have lost its
1470 struct nfs_server *server;
1474 list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link)
1475 if (!list_empty(&server->delegations)) {