Partially revert "block: fail op_is_write() requests to read-only partitions"
Closes: #900442
This commit is contained in:
parent
8131366d14
commit
522d548dd5
|
@ -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 <ben@decadent.org.uk> Sun, 05 Aug 2018 19:37:24 +0800
|
||||
|
||||
linux (4.17.8-1) unstable; urgency=medium
|
||||
|
|
88
debian/patches/bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch
vendored
Normal file
88
debian/patches/bugfix/all/Partially-revert-block-fail-op_is_write-requests-to-.patch
vendored
Normal file
|
@ -0,0 +1,88 @@
|
|||
From: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
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 <wgh@torlan.ru>
|
||||
Acked-by: Mike Snitzer <snitzer@redhat.com>
|
||||
Cc: Sagi Grimberg <sagi@grimberg.me>
|
||||
Cc: Ilya Dryomov <idryomov@gmail.com>
|
||||
Cc: Jens Axboe <axboe@kernel.dk>
|
||||
Cc: Zdenek Kabelac <zkabelac@redhat.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
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
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue