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");
        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);
 }