rbd: endian bug in rbd_req_cb()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 6 Jun 2012 14:15:33 +0000 (09:15 -0500)
committerAlex Elder <elder@dreamhost.com>
Wed, 6 Jun 2012 14:23:54 +0000 (09:23 -0500)
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>
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);