diff --git a/debian/changelog b/debian/changelog index b10dcf21e..a369b1040 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ linux (4.17.8-2) UNRELEASED; urgency=medium + [ Ben Hutchings ] * [armhf] gpu: host1x: Drop my build fix in favour of upstream fix: - Revert "Revert "gpu: host1x: Add IOMMU support"" - gpu: host1x: Fix compiler errors by converting to dma_addr_t @@ -7,6 +8,10 @@ linux (4.17.8-2) UNRELEASED; urgency=medium * mtd: powernv_flash: set of_node in mtd's dev (Closes: #904380) * block: really disable runtime-pm for blk-mq (Closes: #904441) + [ Salvatore Bonaccorso ] + * Partially revert "block: fail op_is_write() requests to read-only + partitions" (Closes: #900442) + -- Ben Hutchings Sun, 05 Aug 2018 19:37:24 +0800 linux (4.17.8-1) unstable; urgency=medium diff --git a/debian/patches/bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch b/debian/patches/bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch new file mode 100644 index 000000000..155ee31e5 --- /dev/null +++ b/debian/patches/bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch @@ -0,0 +1,88 @@ +From: Linus Torvalds +Date: Fri, 3 Aug 2018 12:22:09 -0700 +Subject: Partially revert "block: fail op_is_write() requests to read-only + partitions" +Origin: https://git.kernel.org/linus/a32e236eb93e62a0f692e79b7c3c9636689559b9 +Bug-Debian: https://bugs.debian.org/900442 +Bug: https://bugzilla.kernel.org/show_bug.cgi?id=200439 + +It turns out that commit 721c7fc701c7 ("block: fail op_is_write() +requests to read-only partitions"), while obviously correct, causes +problems for some older lvm2 installations. + +The reason is that the lvm snapshotting will continue to write to the +snapshow COW volume, even after the volume has been marked read-only. +End result: snapshot failure. + +This has actually been fixed in newer version of the lvm2 tool, but the +old tools still exist, and the breakage was reported both in the kernel +bugzilla and in the Debian bugzilla: + + https://bugzilla.kernel.org/show_bug.cgi?id=200439 + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900442 + +The lvm2 fix is here + + https://sourceware.org/git/?p=lvm2.git;a=commit;h=a6fdb9d9d70f51c49ad11a87ab4243344e6701a3 + +but until everybody has updated to recent versions, we'll have to weaken +the "never write to read-only partitions" check. It now allows the +write to happen, but causes a warning, something like this: + + generic_make_request: Trying to write to read-only block-device dm-3 (partno X) + Modules linked in: nf_tables xt_cgroup xt_owner kvm_intel iwlmvm kvm irqbypass iwlwifi + CPU: 1 PID: 77 Comm: kworker/1:1 Not tainted 4.17.9-gentoo #3 + Hardware name: LENOVO 20B6A019RT/20B6A019RT, BIOS GJET91WW (2.41 ) 09/21/2016 + Workqueue: ksnaphd do_metadata + RIP: 0010:generic_make_request_checks+0x4ac/0x600 + ... + Call Trace: + generic_make_request+0x64/0x400 + submit_bio+0x6c/0x140 + dispatch_io+0x287/0x430 + sync_io+0xc3/0x120 + dm_io+0x1f8/0x220 + do_metadata+0x1d/0x30 + process_one_work+0x1b9/0x3e0 + worker_thread+0x2b/0x3c0 + kthread+0x113/0x130 + ret_from_fork+0x35/0x40 + +Note that this is a "revert" in behavior only. I'm leaving alone the +actual code cleanups in commit 721c7fc701c7, but letting the previously +uncaught request go through with a warning instead of stopping it. + +Fixes: 721c7fc701c7 ("block: fail op_is_write() requests to read-only partitions") +Reported-and-tested-by: WGH +Acked-by: Mike Snitzer +Cc: Sagi Grimberg +Cc: Ilya Dryomov +Cc: Jens Axboe +Cc: Zdenek Kabelac +Signed-off-by: Linus Torvalds +--- + block/blk-core.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/block/blk-core.c b/block/blk-core.c +index f84a9b7b6f5a..ee33590f54eb 100644 +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -2155,11 +2155,12 @@ static inline bool bio_check_ro(struct bio *bio, struct hd_struct *part) + if (part->policy && op_is_write(bio_op(bio))) { + char b[BDEVNAME_SIZE]; + +- printk(KERN_ERR ++ WARN_ONCE(1, + "generic_make_request: Trying to write " + "to read-only block-device %s (partno %d)\n", + bio_devname(bio, b), part->partno); +- return true; ++ /* Older lvm-tools actually trigger this */ ++ return false; + } + + return false; +-- +2.18.0 + diff --git a/debian/patches/series b/debian/patches/series index 60b9c3932..bdd263636 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -96,6 +96,7 @@ debian/revert-objtool-fix-config_stack_validation-y-warning.patch bugfix/all/i40e-build-for-64-bit-targets-only.patch bugfix/all/ib-fix-rdma_rxe-and-infiniband_rdmavt-dependencies-f.patch bugfix/all/block-really-disable-runtime-pm-for-blk-mq.patch +bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch # Miscellaneous features features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch