gss_krb5: Added and improved code comments
[safe/jmp/linux-2.6] / net / sunrpc / auth_gss / auth_gss.c
index 75602ec..d64a58b 100644 (file)
@@ -1316,15 +1316,21 @@ gss_wrap_req_priv(struct rpc_cred *cred, struct gss_cl_ctx *ctx,
        inpages = snd_buf->pages + first;
        snd_buf->pages = rqstp->rq_enc_pages;
        snd_buf->page_base -= first << PAGE_CACHE_SHIFT;
-       /* Give the tail its own page, in case we need extra space in the
-        * head when wrapping: */
+       /*
+        * Give the tail its own page, in case we need extra space in the
+        * head when wrapping:
+        *
+        * call_allocate() allocates twice the slack space required
+        * by the authentication flavor to rq_callsize.
+        * For GSS, slack is GSS_CRED_SLACK.
+        */
        if (snd_buf->page_len || snd_buf->tail[0].iov_len) {
                tmp = page_address(rqstp->rq_enc_pages[rqstp->rq_enc_pages_num - 1]);
                memcpy(tmp, snd_buf->tail[0].iov_base, snd_buf->tail[0].iov_len);
                snd_buf->tail[0].iov_base = tmp;
        }
        maj_stat = gss_wrap(ctx->gc_gss_ctx, offset, snd_buf, inpages);
-       /* RPC_SLACK_SPACE should prevent this ever happening: */
+       /* slack space should prevent this ever happening: */
        BUG_ON(snd_buf->len > snd_buf->buflen);
        status = -EIO;
        /* We're assuming that when GSS_S_CONTEXT_EXPIRED, the encryption was