summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorJeff Layton2019-05-02 14:06:50 +0200
committerIlya Dryomov2019-05-07 19:43:05 +0200
commit4198aba4f431e2d2c24a11cdb9d53106fda00b43 (patch)
tree02fee8f9ea0bf955c2590d35cb8bd673d648742d /fs/ceph
parentlibceph: make ceph_pr_addr take an struct ceph_entity_addr pointer (diff)
downloadkernel-qcow2-linux-4198aba4f431e2d2c24a11cdb9d53106fda00b43.tar.gz
kernel-qcow2-linux-4198aba4f431e2d2c24a11cdb9d53106fda00b43.tar.xz
kernel-qcow2-linux-4198aba4f431e2d2c24a11cdb9d53106fda00b43.zip
ceph: fix unaligned access in ceph_send_cap_releases
Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/mds_client.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 5f3f375cf0e9..959b1bf7c327 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -1855,7 +1855,8 @@ again:
num_cap_releases--;
head = msg->front.iov_base;
- le32_add_cpu(&head->num, 1);
+ put_unaligned_le32(get_unaligned_le32(&head->num) + 1,
+ &head->num);
item = msg->front.iov_base + msg->front.iov_len;
item->ino = cpu_to_le64(cap->cap_ino);
item->cap_id = cpu_to_le64(cap->cap_id);