Revert: "dm-verity: restart or panic on an I/O error"
commit462763212dupstream. This reverts commite6a3531dd5. The problem that the commite6a3531dd5fixes was reported as a security bug, but Google engineers working on Android and ChromeOS didn't want to change the default behavior, they want to get -EIO rather than restarting the system, so I am reverting that commit. Note also that calling machine_restart from the I/O handling code is potentially unsafe (the reboot notifiers may wait for the bio that triggered the restart), but Android uses the reboot notifiers to store the reboot reason into the PMU microcontroller, so machine_restart must be used. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Cc: stable@vger.kernel.org Fixes:e6a3531dd5("dm-verity: restart or panic on an I/O error") Suggested-by: Sami Tolvanen <samitolvanen@google.com> Suggested-by: Will Drewry <wad@chromium.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b126f1b54d
commit
338b32a232
@@ -272,10 +272,8 @@ out:
|
||||
if (v->mode == DM_VERITY_MODE_LOGGING)
|
||||
return 0;
|
||||
|
||||
if (v->mode == DM_VERITY_MODE_RESTART) {
|
||||
pr_emerg("dm-verity device corrupted\n");
|
||||
emergency_restart();
|
||||
}
|
||||
if (v->mode == DM_VERITY_MODE_RESTART)
|
||||
kernel_restart("dm-verity device corrupted");
|
||||
|
||||
if (v->mode == DM_VERITY_MODE_PANIC)
|
||||
panic("dm-verity device corrupted");
|
||||
@@ -598,23 +596,6 @@ static void verity_finish_io(struct dm_verity_io *io, blk_status_t status)
|
||||
if (!static_branch_unlikely(&use_bh_wq_enabled) || !io->in_bh)
|
||||
verity_fec_finish_io(io);
|
||||
|
||||
if (unlikely(status != BLK_STS_OK) &&
|
||||
unlikely(!(bio->bi_opf & REQ_RAHEAD)) &&
|
||||
!verity_is_system_shutting_down()) {
|
||||
if (v->mode == DM_VERITY_MODE_RESTART ||
|
||||
v->mode == DM_VERITY_MODE_PANIC)
|
||||
DMERR_LIMIT("%s has error: %s", v->data_dev->name,
|
||||
blk_status_to_str(status));
|
||||
|
||||
if (v->mode == DM_VERITY_MODE_RESTART) {
|
||||
pr_emerg("dm-verity device corrupted\n");
|
||||
emergency_restart();
|
||||
}
|
||||
|
||||
if (v->mode == DM_VERITY_MODE_PANIC)
|
||||
panic("dm-verity device corrupted");
|
||||
}
|
||||
|
||||
bio_endio(bio);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user