Merge "dm verity: skip verity work on I/O errors when system is shutting down"
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index f15f219..8f64487 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -67,6 +67,14 @@
struct buffer_aux {
int hash_verified;
};
+/*
+ * While system shutdown, skip verity work for I/O error.
+ */
+static inline bool verity_is_system_shutting_down(void)
+{
+ return system_state == SYSTEM_HALT || system_state == SYSTEM_POWER_OFF
+ || system_state == SYSTEM_RESTART;
+}
/*
* Initialize struct buffer_aux for a freshly created buffer.
@@ -513,7 +521,8 @@
{
struct dm_verity_io *io = bio->bi_private;
- if (bio->bi_error && !verity_fec_is_enabled(io->v)) {
+ if (bio->bi_error &&
+ (!verity_fec_is_enabled(io->v) || verity_is_system_shutting_down())) {
verity_finish_io(io, bio->bi_error);
return;
}