• J. Bruce Fields's avatar
    nfsd: fix clid_inuse on mount with security change · 2b634821
    J. Bruce Fields authored
    In bakeathon testing Solaris client was getting CLID_INUSE error when
    doing a krb5 mount soon after an auth_sys mount, or vice versa.
    
    That's not really necessary since in this case the old client doesn't
    have any state any more:
    
    	http://tools.ietf.org/html/rfc7530#page-103
    
    	"when the server gets a SETCLIENTID for a client ID that
    	currently has no state, or it has state but the lease has
    	expired, rather than returning NFS4ERR_CLID_INUSE, the server
    	MUST allow the SETCLIENTID and confirm the new client ID if
    	followed by the appropriate SETCLIENTID_CONFIRM."
    
    This doesn't fix the problem completely since our client_has_state()
    check counts openowners left around to handle close replays, which we
    should probably just remove in this case.
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    2b634821
nfs4state.c 172 KB