• Chuck Lever's avatar
    Revert "NFSD: Reschedule CB operations when backchannel rpc_clnt is shut down" · 9c8ecb93
    Chuck Lever authored
    The reverted commit attempted to enable NFSD to retransmit pending
    callback operations if an NFS client disconnects, but
    unintentionally introduces a hazardous behavior regression if the
    client becomes permanently unreachable while callback operations are
    still pending.
    
    A disconnect can occur due to network partition or if the NFS server
    needs to force the NFS client to retransmit (for example, if a GSS
    window under-run occurs).
    
    Reverting the commit will make NFSD behave the same as it did in
    v6.8 and before. Pending callback operations are permanently lost if
    the client connection is terminated before the client receives them.
    
    For some callback operations, this loss is not harmful.
    
    However, for CB_RECALL, the loss means a delegation might be revoked
    unnecessarily. For CB_OFFLOAD, pending COPY operations will never
    complete unless the NFS client subsequently sends an OFFLOAD_STATUS
    operation, which the Linux NFS client does not currently implement.
    
    These issues still need to be addressed somehow.
    Reported-by: default avatarDai Ngo <dai.ngo@oracle.com>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=218735Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    9c8ecb93
nfs4callback.c 38.7 KB