コード例 #1
0
ファイル: sec_null.c プロジェクト: chaos/lustre-kdmu
static
int null_ctx_verify(struct ptlrpc_cli_ctx *ctx, struct ptlrpc_request *req)
{
        __u32   cksums, cksumc;

        LASSERT(req->rq_repdata);

        req->rq_repmsg = req->rq_repdata;
        req->rq_replen = req->rq_repdata_len;

        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);
                        return -EINVAL;
                }
        }

        return 0;
}
コード例 #2
0
ファイル: sec_null.c プロジェクト: AK101111/linux
static
int null_ctx_verify(struct ptlrpc_cli_ctx *ctx, struct ptlrpc_request *req)
{
	__u32 cksums, cksumc;

	LASSERT(req->rq_repdata);

	req->rq_repmsg = req->rq_repdata;
	req->rq_replen = req->rq_repdata_len;

	if (req->rq_early) {
		cksums = lustre_msg_get_cksum(req->rq_repdata);
		cksumc = lustre_msg_calc_cksum(req->rq_repmsg);
		if (cksumc != cksums) {
			CDEBUG(D_SEC,
			       "early reply checksum mismatch: %08x != %08x\n",
			       cksumc, cksums);
			return -EINVAL;
		}
	}

	return 0;
}