From: wang di Date: Sun, 21 Apr 2013 07:22:40 +0000 (-0700) Subject: LU-1378 seq: swab lu_seq_range before accessing it X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=e813260695678ff0e3c8d17a57c3174dc63565af;p=fs%2Flustre-release.git LU-1378 seq: swab lu_seq_range before accessing it In seq_client_rpc, it should swab lu_seq_range after getting it from the reply. Signed-off-by: Di Wang Change-Id: I8a2118e1895d2c89430961997dbad4a3f20a6762 Reviewed-on: http://review.whamcloud.com/2655 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger --- diff --git a/lustre/include/lustre/lustre_idl.h b/lustre/include/lustre/lustre_idl.h index a1ea431..6405ec8 100644 --- a/lustre/include/lustre/lustre_idl.h +++ b/lustre/include/lustre/lustre_idl.h @@ -837,6 +837,7 @@ struct lu_seq_range { __u32 lsr_padding; }; +extern void lustre_swab_lu_seq_range(struct lu_seq_range *range); /** * returns width of given range \a r */ diff --git a/lustre/mdc/mdc_fid.c b/lustre/mdc/mdc_fid.c index 1bf500a..a0a655c 100644 --- a/lustre/mdc/mdc_fid.c +++ b/lustre/mdc/mdc_fid.c @@ -103,8 +103,9 @@ static int seq_client_rpc(struct lu_client_seq *seq, struct lu_seq_range *input, if (rc) GOTO(out_req, rc); - out = lustre_msg_buf(req->rq_repmsg, REPLY_REC_OFF, - sizeof(struct lu_seq_range)); + out = lustre_swab_repbuf(req, REPLY_REC_OFF, + sizeof(struct lu_seq_range), + lustre_swab_lu_seq_range); *output = *out; if (!range_is_sane(output)) { diff --git a/lustre/obdclass/llog_swab.c b/lustre/obdclass/llog_swab.c index 70a53d2..9bd7c84 100644 --- a/lustre/obdclass/llog_swab.c +++ b/lustre/obdclass/llog_swab.c @@ -107,6 +107,14 @@ void lustre_swab_lu_fid(struct lu_fid *fid) } EXPORT_SYMBOL(lustre_swab_lu_fid); +void lustre_swab_lu_seq_range(struct lu_seq_range *range) +{ + __swab64s(&range->lsr_start); + __swab64s(&range->lsr_end); + __swab32s(&range->lsr_mdt); +} +EXPORT_SYMBOL(lustre_swab_lu_seq_range); + void lustre_swab_llog_rec(struct llog_rec_hdr *rec, struct llog_rec_tail *tail) { __swab32s(&rec->lrh_len);