Commit 09fb9012 authored by Jeff Layton's avatar Jeff Layton Committed by Ben Hutchings

ceph: fix bad endianness handling in parse_reply_info_extra

commit 6df8c9d8 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: default avatarJeff Layton <jlayton@redhat.com>
Reviewed-by: default avatarSage Weil <sage@redhat.com>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent dc9b63fe
...@@ -262,12 +262,13 @@ static int parse_reply_info_extra(void **p, void *end, ...@@ -262,12 +262,13 @@ static int parse_reply_info_extra(void **p, void *end,
struct ceph_mds_reply_info_parsed *info, struct ceph_mds_reply_info_parsed *info,
u64 features) u64 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); return parse_reply_info_filelock(p, end, info, features);
else if (info->head->op == CEPH_MDS_OP_READDIR || else if (op == CEPH_MDS_OP_READDIR || op == CEPH_MDS_OP_LSSNAP)
info->head->op == CEPH_MDS_OP_LSSNAP)
return parse_reply_info_dir(p, end, info, features); return parse_reply_info_dir(p, end, info, features);
else if (info->head->op == CEPH_MDS_OP_CREATE) else if (op == CEPH_MDS_OP_CREATE)
return parse_reply_info_create(p, end, info, features); return parse_reply_info_create(p, end, info, features);
else else
return -EIO; return -EIO;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment