Commit:     ffc40f569272b6be60c66441aeae79a686ff54d9
Parent:     b09b9417d074e01a4e4ab5c19358f1b3dc76c1b2
Author:     Kevin Coffman <[EMAIL PROTECTED]>
AuthorDate: Fri Nov 9 18:42:04 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Sat Nov 17 13:08:45 2007 -0500

    sunrpc: gss_pipe_downcall(), don't assume all errors are transient
    Instead of mapping all errors except EACCES to EAGAIN, map all errors
    except EAGAIN to EACCES.
    An example is user-land negotiating a Kerberos context with an encryption
    type that is not supported by the kernel code.  (This can happen due to
    mis-configuration or a bug in the Kerberos code that does not honor our
    request to limit the encryption types negotiated.)  This failure is not
    transient, and returning EAGAIN causes mount to continuously retry rather
    than giving up.
    Signed-off-by: Kevin Coffman <[EMAIL PROTECTED]>
    Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
 net/sunrpc/auth_gss/auth_gss.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index 53995af..c42362c 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -540,7 +540,7 @@ gss_pipe_downcall(struct file *filp, const char __user 
*src, size_t mlen)
        p = gss_fill_context(p, end, ctx, gss_msg->auth->mech);
        if (IS_ERR(p)) {
                err = PTR_ERR(p);
-               gss_msg->msg.errno = (err == -EACCES) ? -EACCES : -EAGAIN;
+               gss_msg->msg.errno = (err == -EAGAIN) ? -EAGAIN : -EACCES;
                goto err_release_msg;
        gss_msg->ctx = gss_get_ctx(ctx);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to