From: ericm Date: Wed, 7 Sep 2005 00:46:19 +0000 (+0000) Subject: minor fix to make gss error report more accurate. X-Git-Tag: 1.4.10~583 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=986f56558d91ed8d8c7f6081c0fd184391ecf1eb;p=fs%2Flustre-release.git minor fix to make gss error report more accurate. --- diff --git a/lustre/sec/gss/sec_gss.c b/lustre/sec/gss/sec_gss.c index e89e0e1..c901197 100644 --- a/lustre/sec/gss/sec_gss.c +++ b/lustre/sec/gss/sec_gss.c @@ -212,10 +212,12 @@ static int secinit_parse_reply(char *repbuf, int replen, p = (__u32 *) buf_to_sec_data(repbuf); effective = 0; - status = le32_to_cpu(*p++); + p += 2; /* skip the leading unused bytes */ + seq = le32_to_cpu(*p++); major = le32_to_cpu(*p++); minor = le32_to_cpu(*p++); - seq = le32_to_cpu(*p++); + status = 0; + effective += 4 * 4; if (copy_to_user(outbuf, &status, 4)) diff --git a/lustre/sec/gss/svcsec_gss.c b/lustre/sec/gss/svcsec_gss.c index 1ecfc46..8bff6bf 100644 --- a/lustre/sec/gss/svcsec_gss.c +++ b/lustre/sec/gss/svcsec_gss.c @@ -997,7 +997,7 @@ gss_svcsec_handle_init(struct ptlrpc_request *req, req->rq_peer.peer_id.nid, nidstr)); svcdata->is_init = 1; - svcdata->reserve_len = 6 * 4 + + svcdata->reserve_len = 7 * 4 + size_round4(rsip->out_handle.len) + size_round4(rsip->out_token.len); @@ -1018,14 +1018,15 @@ gss_svcsec_handle_init(struct ptlrpc_request *req, resp += req->rq_replen / 4; reslen = svcdata->reserve_len; - /* gss reply: - * status, major, minor, seq, out_handle, out_token + /* gss reply: (conform to err notify format) + * x, x, seq, major, minor, handle, token */ - *resp++ = cpu_to_le32(PTLRPCS_OK); + *resp++ = 0; + *resp++ = 0; + *resp++ = cpu_to_le32(GSS_SEQ_WIN); *resp++ = cpu_to_le32(rsip->major_status); *resp++ = cpu_to_le32(rsip->minor_status); - *resp++ = cpu_to_le32(GSS_SEQ_WIN); - reslen -= (4 * 4); + reslen -= (5 * 4); if (rawobj_serialize(&rsip->out_handle, &resp, &reslen)) { dump_rsi(rsip);