static int null_authorize(struct ptlrpc_request *req) { struct ptlrpc_reply_state *rs = req->rq_reply_state; LASSERT(rs); rs->rs_repbuf->lm_secflvr = SPTLRPC_FLVR_NULL; rs->rs_repdata_len = req->rq_replen; if (likely(req->rq_packed_final)) { if (lustre_msghdr_get_flags(req->rq_reqmsg) & MSGHDR_AT_SUPPORT) req->rq_reply_off = lustre_msg_early_size(); else req->rq_reply_off = 0; } else { __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; } return 0; }
static int null_authorize(struct ptlrpc_request *req) { struct ptlrpc_reply_state *rs = req->rq_reply_state; LASSERT(rs); rs->rs_repbuf->lm_secflvr = SPTLRPC_FLVR_NULL; rs->rs_repdata_len = req->rq_replen; if (likely(req->rq_packed_final)) { if (lustre_msghdr_get_flags(req->rq_reqmsg) & MSGHDR_AT_SUPPORT) req->rq_reply_off = lustre_msg_early_size(); else req->rq_reply_off = 0; } else { __u32 cksum; cksum = lustre_msg_calc_cksum(rs->rs_repbuf); lustre_msg_set_cksum(rs->rs_repbuf, cksum); req->rq_reply_off = 0; } return 0; }
static int null_alloc_repbuf(struct ptlrpc_sec *sec, struct ptlrpc_request *req, int msgsize) { /* add space for early replied */ msgsize += lustre_msg_early_size(); msgsize = size_roundup_power2(msgsize); OBD_ALLOC(req->rq_repbuf, msgsize); if (!req->rq_repbuf) return -ENOMEM; req->rq_repbuf_len = msgsize; return 0; }