Whamcloud - gitweb
LU-1378 seq: swab lu_seq_range before accessing it
authorwang di <di.wang@intel.com>
Sun, 21 Apr 2013 07:22:40 +0000 (00:22 -0700)
committerJohann Lombardi <johann.lombardi@intel.com>
Tue, 11 Jun 2013 13:12:11 +0000 (09:12 -0400)
In seq_client_rpc, it should swab lu_seq_range after getting
it from the reply.

Signed-off-by: Di Wang <di.wang@intel.com>
Change-Id: I8a2118e1895d2c89430961997dbad4a3f20a6762
Reviewed-on: http://review.whamcloud.com/2655
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/include/lustre/lustre_idl.h
lustre/mdc/mdc_fid.c
lustre/obdclass/llog_swab.c

index a1ea431..6405ec8 100644 (file)
@@ -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
  */
index 1bf500a..a0a655c 100644 (file)
@@ -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)) {
index 70a53d2..9bd7c84 100644 (file)
@@ -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);