rbd: endian bug in rbd_req_cb()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 6 Jun 2012 14:15:33 +0000 (09:15 -0500)
committerSage Weil <sage@inktank.com>
Wed, 18 Jul 2012 04:30:31 +0000 (21:30 -0700)
Sparse complains about this because:
drivers/block/rbd.c:996:20: warning: cast to restricted __le32
drivers/block/rbd.c:996:20: warning: cast from restricted __le16

These are set in osd_req_encode_op() and they are le16.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Alex Elder <elder@inktank.com>
(cherry picked from commit 895cfcc810e53d7d36639969c71efb9087221167)

drivers/block/rbd.c

index 8b9c1734d80706faa8bc2a6c175d91334d2e3bd1..8f428a8ab003d8c7a029036eea6a1666a96d7dd3 100644 (file)
@@ -977,7 +977,7 @@ static void rbd_req_cb(struct ceph_osd_request *req, struct ceph_msg *msg)
        op = (void *)(replyhead + 1);
        rc = le32_to_cpu(replyhead->result);
        bytes = le64_to_cpu(op->extent.length);
-       read_op = (le32_to_cpu(op->op) == CEPH_OSD_OP_READ);
+       read_op = (le16_to_cpu(op->op) == CEPH_OSD_OP_READ);
 
        dout("rbd_req_cb bytes=%lld readop=%d rc=%d\n", bytes, read_op, rc);