X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fptlrpc%2Fsec_null.c;h=dd4332b5ad430a21561cbae319a16d660bca0906;hb=4a2abc926bf7408bbdd13fc0d99dc8abd54d8e37;hp=67dbcfbaf581fd7bb64b6b730864274bb6d44d70;hpb=6e3ec5812ebd1b5ecf7cae584f429b013ffe7431;p=fs%2Flustre-release.git diff --git a/lustre/ptlrpc/sec_null.c b/lustre/ptlrpc/sec_null.c index 67dbcfb..dd4332b 100644 --- a/lustre/ptlrpc/sec_null.c +++ b/lustre/ptlrpc/sec_null.c @@ -26,7 +26,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -107,7 +107,16 @@ int null_ctx_verify(struct ptlrpc_cli_ctx *ctx, struct ptlrpc_request *req) if (req->rq_early) { cksums = lustre_msg_get_cksum(req->rq_repdata); +#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 9, 0, 0) + if (lustre_msghdr_get_flags(req->rq_reqmsg) & + MSGHDR_CKSUM_INCOMPAT18) + cksumc = lustre_msg_calc_cksum(req->rq_repmsg, 0); + else + cksumc = lustre_msg_calc_cksum(req->rq_repmsg, 1); +#else +# warning "remove checksum compatibility support for b1_8" cksumc = lustre_msg_calc_cksum(req->rq_repmsg); +#endif if (cksumc != cksums) { CWARN("early reply checksum mismatch: %08x != %08x\n", cksumc, cksums); @@ -192,11 +201,9 @@ void null_free_reqbuf(struct ptlrpc_sec *sec, req, req->rq_reqlen, req->rq_reqbuf_len); OBD_FREE(req->rq_reqbuf, req->rq_reqbuf_len); - req->rq_reqmsg = req->rq_reqbuf = NULL; + req->rq_reqbuf = NULL; req->rq_reqbuf_len = 0; } - - req->rq_reqmsg = NULL; } static @@ -226,8 +233,6 @@ void null_free_repbuf(struct ptlrpc_sec *sec, OBD_FREE(req->rq_repbuf, req->rq_repbuf_len); req->rq_repbuf = NULL; req->rq_repbuf_len = 0; - - req->rq_repmsg = NULL; } static @@ -358,8 +363,19 @@ int null_authorize(struct ptlrpc_request *req) else req->rq_reply_off = 0; } else { - lustre_msg_set_cksum(rs->rs_repbuf, - lustre_msg_calc_cksum(rs->rs_repbuf)); + __u32 cksum; + +#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 9, 0, 0) + if (lustre_msghdr_get_flags(req->rq_reqmsg) & + MSGHDR_CKSUM_INCOMPAT18) + cksum = lustre_msg_calc_cksum(rs->rs_repbuf, 0); + else + cksum = lustre_msg_calc_cksum(rs->rs_repbuf, 1); +#else +# warning "remove checksum compatibility support for b1_8" + cksum = lustre_msg_calc_cksum(rs->rs_repbuf); +#endif + lustre_msg_set_cksum(rs->rs_repbuf, cksum); req->rq_reply_off = 0; }