ceph: fix bad endianness handling in parse_reply_info_extra
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. Cc: stable@vger.kernel.org # needs backporting for < 3.14 Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Sage Weil <sage@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
fe2ed42517
commit
6df8c9d80a
1 changed files with 5 additions and 4 deletions
|
@ -288,12 +288,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;
|
||||||
|
|
Loading…
Reference in a new issue