• Jeff Layton's avatar
    cifs: change DOS/NT/POSIX mapping of ERRnoresource · 4f2b86ab
    Jeff Layton authored
    ERRnoresource is an ERRSRV level (aka server-side) error and means "No
    resources currently available for request". Currently that maps to POSIX
    -ENOBUFS. No NT errors map to it currently.
    
    NT_STATUS_INSUFFICIENT_RESOURCES and NT_STATUS_INSUFF_SERVER_RESOURCES
    are also similar in meaning. Currently the client maps those to
    ERRnomem, which maps to -ENOMEM in POSIX.
    
    All of these mappings seem to be quite wrong to me and are confusing for
    users. All of the above errors indicate problems on the server, not the
    client. Reporting -ENOMEM or -ENOBUFS implies that the client is running
    out of resources.
    
    This patch changes those mappings. The NT_* errors are changed to map to
    the SRV level ERRnoresource. That error is in turn changed to return
    -EREMOTEIO which is the only POSIX error I could find that conveys that
    something went wrong on the server. While we're at it, change the SMB2
    equivalent error to return the same.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Acked-by: default avatarSuresh Jayaraman <sjayaraman@suse.com>
    Signed-off-by: default avatarSteve French <smfrench@gmail.com>
    4f2b86ab
smb2maperror.c 127 KB