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.steff...@gmail.com>
+From: Michael Lyle <[email protected]>
+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 <[email protected]>
+Fixes: 74d46992e0d9 ("block: replace bi_bdev with a gendisk pointer and 
partitions index")
+Reported-by: Pavel Goran <[email protected]>
+Reported-by: Campbell Steven <[email protected]>
+Reviewed-by: Coly Li <[email protected]>
+Reviewed-by: Ming Lei <[email protected]>
+Cc: <[email protected]> # 4.14
+Signed-off-by: Jens Axboe <[email protected]>
+---
+ 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

Reply via email to