• Rick Macklem's avatar
    nfscl: Handle NFSv4.1/4.2 Close RPC NFSERR_DELAY replies better · 52dee2bc
    Rick Macklem authored
    Without this patch, if a NFSv4.1/4.2 server replies NFSERR_DELAY to
    a Close operation, the client loops retrying the Close while holding
    a shared lock on the clientID.  This shared lock blocks returns of
    delegations, even though the server has issued a CB_RECALL to request
    the delegation return.
    
    This patch delays doing a retry of a Close that received a reply of
    NFSERR_DELAY until after the shared lock on the clientID is released,
    for NFSv4.1/4.2.  To fix this for NFSv4.0 would be very difficult and
    since the only known NFSv4 server to reply NFSERR_DELAY to Close only
    does NFSv4.1/4.2, this fix is hoped to be sufficient.
    
    This problem was detected during a recent IETF working group NFSv4
    testing event.
    
    MFC after:	2 week
    52dee2bc