From: Jeff Layton Date: Thu, 12 Jan 2017 19:42:41 +0000 (-0500) Subject: ceph: fix bad endianness handling in parse_reply_info_extra X-Git-Tag: v3.2.87~86 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19e4feb02443f85802d51a34af36ff5fe01128d9;p=pandora-kernel.git ceph: fix bad endianness handling in parse_reply_info_extra commit 6df8c9d80a27cb587f61b4f06b57e248d8bc3f86 upstream. sparse says: fs/ceph/mds_client.c:291:23: warning: restricted __le32 degrades to integer fs/ceph/mds_client.c:293:28: warning: restricted __le32 degrades to integer fs/ceph/mds_client.c:294:28: warning: restricted __le32 degrades to integer fs/ceph/mds_client.c:296:28: warning: restricted __le32 degrades to integer The op value is __le32, so we need to convert it before comparing it. Signed-off-by: Jeff Layton Reviewed-by: Sage Weil Signed-off-by: Ilya Dryomov [bwh: Backported to 3.2: only filelock and directory replies are handled] Signed-off-by: Ben Hutchings --- diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index b24e2d332767..0432281fb74b 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -238,7 +238,9 @@ static int parse_reply_info_extra(void **p, void *end, struct ceph_mds_reply_info_parsed *info, int features) { - if (info->head->op == CEPH_MDS_OP_GETFILELOCK) + u32 op = le32_to_cpu(info->head->op); + + if (op == CEPH_MDS_OP_GETFILELOCK) return parse_reply_info_filelock(p, end, info, features); else return parse_reply_info_dir(p, end, info, features);