• Chuck Lever's avatar
    NFSD: Add COPY status code to OFFLOAD_STATUS response · cc63c216
    Chuck Lever authored
    Clients that send an OFFLOAD_STATUS might want to distinguish
    between an async COPY operation that is still running, has
    completed successfully, or that has failed.
    
    The intention of this patch is to make NFSD behave like this:
    
     * Copy still running:
    	OFFLOAD_STATUS returns NFS4_OK, the number of bytes copied
    	so far, and an empty osr_status array
     * Copy completed successfully:
    	OFFLOAD_STATUS returns NFS4_OK, the number of bytes copied,
    	and an osr_status of NFS4_OK
     * Copy failed:
    	OFFLOAD_STATUS returns NFS4_OK, the number of bytes copied,
    	and an osr_status other than NFS4_OK
     * Copy operation lost, canceled, or otherwise unrecognized:
    	OFFLOAD_STATUS returns NFS4ERR_BAD_STATEID
    
    NB: Though RFC 7862 Section 11.2 lists a small set of NFS status
    codes that are valid for OFFLOAD_STATUS, there do not seem to be any
    explicit spec limits on the status codes that may be returned in the
    osr_status field.
    
    At this time we have no unit tests for COPY and its brethren, as
    pynfs does not yet implement support for NFSv4.2.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    cc63c216
nfs4xdr.c 155 KB