Patch "dm integrity: allow unaligned bv_offset" has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
dm integrity: allow unaligned bv_offset
to the 4.14-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:
dm-integrity-allow-unaligned-bv_offset.patch
and it can be found in the queue-4.14 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
95b1369a9638cfa322ad1c0cde8efbe524059884Mon Sep 17 00:00:00 2001
From: Mikulas Patocka <[email protected]>
Date: Tue, 7 Nov 2017 10:40:40 -0500
Subject: dm integrity: allow unaligned bv_offset
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Mikulas Patocka <[email protected]>
commit 95b1369a9638cfa322ad1c0cde8efbe524059884 upstream.
When slub_debug is enabled kmalloc returns unaligned memory. XFS uses this unaligned memory for its buffers (if an unaligned buffer crosses a page, XFS frees it and allocates a full page instead - see the function xfs_buf_allocate_memory).
dm-integrity checks if bv_offset is aligned on page size and this check fail with slub_debug and XFS.
Fix this bug by removing the bv_offset check, leaving only the check for bv_len.
--- drivers/md/dm-integrity.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/md/dm-integrity.c +1 -1
@@ -1376,7 +1376,7 @@ static int dm_integrity_map(struct dm_tastruct bvec_iter iter;struct bio_vec bv;bio_for_each_segment (bv, bio, iter) { -if (unlikely ((bv.bv_offset | bv.bv_len) & ((ic->sectors_per_block <<SECTOR_SHIFT ) -1 ))) { +if (unlikely (bv.bv_len & ((ic->sectors_per_block <<SECTOR_SHIFT ) -1 ))) {DMERR ("Bio vector (%u,%u) is not aligned on %u-sector boundary" , bv.bv_offset, bv.bv_len, ic->sectors_per_block);return DM_MAPIO_KILL ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/dm-allocate-struct-mapped_device-with-kvzalloc.patch queue-4.14/dm-integrity-allow-unaligned-bv_offset.patch queue-4.14/dm-crypt-allow-unaligned-bv_offset.patch