]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commit - drivers/md/dm-bufio.c
dm bufio: fix buffer alignment
authorMikulas Patocka <mpatocka@redhat.com>
Thu, 19 Apr 2018 12:33:00 +0000 (08:33 -0400)
committerMike Snitzer <snitzer@redhat.com>
Mon, 30 Apr 2018 15:51:39 +0000 (11:51 -0400)
commitf7879b4cea4b7867e7382efdbd805fbe35835337
treebb6b18ca48bde0f32f82b38ed28e8126f24ae755
parentfc8cec113904a47396bf0a1afc62920d66319d36
dm bufio: fix buffer alignment

Commit 6b5e718cc138 ("dm bufio: relax alignment constraint on slab
cache") relaxed alignment on dm-bufio cache, however it may break
dm-crypt or dm-integrity.

dm-crypt and dm-integrity require that the size of bio vector entries
(bv_len) is aligned on its sector size. bv_offset doesn't have to be
aligned, but bv_len must be. XFS sends unaligned bios, but they do not
cross page boundary, so the requirement for aligned bv_len is met.

Commit 6b5e718cc138 made dm-bufio send unaligned bios that cross page
boundary, this could break dm-crypt and dm-integrity.

Reinstates the alignment. Note that misaligned entries only happen when
we use slab/slub debugging. Without debugging, the entries are always
aligned.

Fixes: 6b5e718cc138 ("dm bufio: relax alignment constraint on slab cache")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-bufio.c