Skip to content
Snippets Groups Projects
nfs4state.c 53.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    		nfs4_clear_state_manager_bit(clp);
    
    		/* Did we race with an attempt to give us more work? */
    		if (clp->cl_state == 0)
    			break;
    		if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0)
    			break;
    
    	} while (atomic_read(&clp->cl_count) > 1);
    
    Linus Torvalds's avatar
    Linus Torvalds committed
    out_error:
    
    	if (strlen(section))
    		section_sep = ": ";
    	pr_warn_ratelimited("NFS: state manager%s%s failed on NFSv4 server %s"
    			" with error %d\n", section_sep, section,
    			clp->cl_hostname, -status);
    
    	nfs4_end_drain_session(clp);
    
    	nfs4_clear_state_manager_bit(clp);
    }
    
    static int nfs4_run_state_manager(void *ptr)
    {
    	struct nfs_client *clp = ptr;
    
    	allow_signal(SIGKILL);
    	nfs4_state_manager(clp);
    	nfs_put_client(clp);
    	module_put_and_exit(0);
    	return 0;
    
    Linus Torvalds's avatar
    Linus Torvalds committed
    }
    
    /*
     * Local variables:
     *  c-basic-offset: 8
     * End:
     */