diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2021-03-18 02:34:54 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2021-03-18 02:34:54 -0700 |
| commit | 9278e31eba93a3fda47c81e77590656c5b8451e2 (patch) | |
| tree | fe307c6b412515c04b20b8738af88b95718acf02 | |
| parent | 4197511bc352d71f1bc78b09e9852dd7e22bc7c7 (diff) | |
| parent | 46d65055583685de8ac2ea342190e22b3e8157f5 (diff) | |
Merge "dm verity: skip verity work on I/O errors when system is shutting down"
| -rw-r--r-- | drivers/md/dm-verity-target.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c index ae6fd58d6349..130860714dda 100644 --- a/drivers/md/dm-verity-target.c +++ b/drivers/md/dm-verity-target.c @@ -63,6 +63,14 @@ struct dm_verity_prefetch_work { 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. @@ -509,7 +517,8 @@ static void verity_end_io(struct bio *bio) { 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; } |
