[arch-commits] Commit in linux/trunk (2 files)

Jan Steffens heftig at archlinux.org
Wed Nov 22 09:29:44 UTC 2017


    Date: Wednesday, November 22, 2017 @ 09:29:43
  Author: heftig
Revision: 310531

4.14.1-2

Added:
  linux/trunk/0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch
Modified:
  linux/trunk/PKGBUILD

---------------------------------------------------------+
 0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch |   39 ++++++++++++++
 PKGBUILD                                                |    9 ++-
 2 files changed, 46 insertions(+), 2 deletions(-)

Added: 0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch
===================================================================
--- 0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch	                        (rev 0)
+++ 0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch	2017-11-22 09:29:43 UTC (rev 310531)
@@ -0,0 +1,39 @@
+From 62530ed8b1d07a45dec94d46e521c0c6c2d476e6 Mon Sep 17 00:00:00 2001
+Message-Id: <62530ed8b1d07a45dec94d46e521c0c6c2d476e6.1511339979.git.jan.steffens at gmail.com>
+From: Michael Lyle <mlyle at lyle.org>
+Date: Thu, 16 Nov 2017 23:47:25 -0800
+Subject: [PATCH] bio: ensure __bio_clone_fast copies bi_partno
+
+A new field was introduced in 74d46992e0d9, bi_partno, instead of using
+bdev->bd_contains and encoding the partition information in the bi_bdev
+field.  __bio_clone_fast was changed to copy the disk information, but
+not the partition information.  At minimum, this regressed bcache and
+caused data corruption.
+
+Signed-off-by: Michael Lyle <mlyle at lyle.org>
+Fixes: 74d46992e0d9 ("block: replace bi_bdev with a gendisk pointer and partitions index")
+Reported-by: Pavel Goran <via-bcache at pvgoran.name>
+Reported-by: Campbell Steven <casteven at gmail.com>
+Reviewed-by: Coly Li <colyli at suse.de>
+Reviewed-by: Ming Lei <ming.lei at redhat.com>
+Cc: <stable at vger.kernel.org> # 4.14
+Signed-off-by: Jens Axboe <axboe at kernel.dk>
+---
+ block/bio.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/block/bio.c b/block/bio.c
+index b94a802f8ba34189..459cc857f3d91647 100644
+--- a/block/bio.c
++++ b/block/bio.c
+@@ -597,6 +597,7 @@ void __bio_clone_fast(struct bio *bio, struct bio *bio_src)
+ 	 * so we don't set nor calculate new physical/hw segment counts here
+ 	 */
+ 	bio->bi_disk = bio_src->bi_disk;
++	bio->bi_partno = bio_src->bi_partno;
+ 	bio_set_flag(bio, BIO_CLONED);
+ 	bio->bi_opf = bio_src->bi_opf;
+ 	bio->bi_write_hint = bio_src->bi_write_hint;
+-- 
+2.15.0
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-11-22 05:27:54 UTC (rev 310530)
+++ PKGBUILD	2017-11-22 09:29:43 UTC (rev 310531)
@@ -6,7 +6,7 @@
 #pkgbase=linux-custom       # Build kernel with a different name
 _srcname=linux-4.14
 pkgver=4.14.1
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 url="https://www.kernel.org/"
 license=('GPL2')
@@ -22,6 +22,7 @@
   '90-linux.hook'  # pacman hook for initramfs regeneration
   'linux.preset'   # standard config files for mkinitcpio ramdisk
   '0001-platform-x86-hp-wmi-Fix-tablet-mode-detection-for-co.patch'
+  '0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch'
 )
 validpgpkeys=(
   'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
@@ -35,7 +36,8 @@
             'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
             '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
             'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
-            '6f1d9b6a119bfab150a0bc1f550609dd9290328df709b67c984f0a6b0abe8afd')
+            '6f1d9b6a119bfab150a0bc1f550609dd9290328df709b67c984f0a6b0abe8afd'
+            '92b8755030d405fa4a9cd31cbe2998fd71584164431e5edc28c2be04fab24d1e')
 
 _kernelname=${pkgbase#linux}
 
@@ -53,6 +55,9 @@
   # https://bugs.archlinux.org/task/56207
   patch -Np1 -i ../0001-platform-x86-hp-wmi-Fix-tablet-mode-detection-for-co.patch
 
+  # https://bugs.archlinux.org/task/56404
+  patch -Np1 -i ../0001-bio-ensure-__bio_clone_fast-copies-bi_partno.patch
+
   cp -Tf ../config .config
 
   if [ "${_kernelname}" != "" ]; then


More information about the arch-commits mailing list