Patch "ceph: fix endianness bug in frag_tree_split_cmp" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ceph: fix endianness bug in frag_tree_split_cmp
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ceph-fix-endianness-bug-in-frag_tree_split_cmp.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
fe2ed42517533068ac03eed5630fffafff27eacfMon Sep 17 00:00:00 2001
From: Jeff Layton <[email protected]>
Date: Thu, 12 Jan 2017 14:42:39 -0500
Subject: ceph: fix endianness bug in frag_tree_split_cmp
From: Jeff Layton <[email protected]>
commit fe2ed42517533068ac03eed5630fffafff27eacf upstream.
sparse says:
fs/ceph/inode.c:308:36: warning: incorrect type in argument 1 (different base types)
fs/ceph/inode.c:308:36: expected unsigned int [unsigned] [usertype] a
fs/ceph/inode.c:308:36: got restricted __le32 [usertype] frag
fs/ceph/inode.c:308:46: warning: incorrect type in argument 2 (different base types)
fs/ceph/inode.c:308:46: expected unsigned int [unsigned] [usertype] b
fs/ceph/inode.c:308:46: got restricted __le32 [usertype] frag
We need to convert these values to host-endian before calling the comparator.
--- fs/ceph/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
fs/ceph/inode.c +2 -1
@@ -305,7 +305,8 @@ static int frag_tree_split_cmp(const voi {struct ceph_frag_tree_split *ls = (struct ceph_frag_tree_split *)l;struct ceph_frag_tree_split *rs = (struct ceph_frag_tree_split *)r; -return ceph_frag_compare (ls->frag, rs->frag); +return ceph_frag_compare (le32_to_cpu (ls->frag), +le32_to_cpu (rs->frag)); }static bool is_frag_child (u32 f,struct ceph_inode_frag *frag)
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/ceph-fix-endianness-of-getattr-mask-in-ceph_d_revalidate.patch queue-4.9/ceph-fix-endianness-bug-in-frag_tree_split_cmp.patch queue-4.9/ceph-fix-bad-endianness-handling-in-parse_reply_info_extra.patch