OSDN Git Service

ceph: fix unaligned access in ceph_send_cap_releases
authorJeff Layton <jlayton@kernel.org>
Thu, 2 May 2019 12:06:50 +0000 (08:06 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 7 May 2019 17:43:05 +0000 (19:43 +0200)
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/mds_client.c

index 5f3f375..959b1bf 100644 (file)
@@ -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);