Revert "Revert "[Feature][API-794]when a/b slot broken, rollback and repair it.-2.system partition rollback""

This reverts commit 3646d814962625eabe3d08fc34323929506fe265.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I27bca8004386b66d474efacaa55c9151607e3e76
diff --git a/src/kernel/linux/v4.19/drivers/md/dm-verity-target.c b/src/kernel/linux/v4.19/drivers/md/dm-verity-target.c
index 758b802..9a422a9 100644
--- a/src/kernel/linux/v4.19/drivers/md/dm-verity-target.c
+++ b/src/kernel/linux/v4.19/drivers/md/dm-verity-target.c
@@ -16,6 +16,7 @@
 
 #include "dm-verity.h"
 #include "dm-verity-fec.h"
+#include "../lynq_bootctrl/lynq_bootctrl.h"
 
 #include <linux/module.h>
 #include <linux/reboot.h>
@@ -215,6 +216,7 @@
 	char verity_env[DM_VERITY_ENV_LENGTH];
 	char *envp[] = { verity_env, NULL };
 	const char *type_str = "";
+	int ret;
 	struct mapped_device *md = dm_table_get_md(v->ti->table);
 
 	/* Corruption should be visible in device status in all modes */
@@ -255,6 +257,14 @@
 #ifdef CONFIG_DM_VERITY_AVB
 		dm_verity_avb_error_handler();
 #endif
+//xf.li@20230313 modify for ab_rollback start
+		printk("BOOTCTRL:dm-verity error, rollback");
+		ret = bootctrl_mark_boot_unsuccessful();
+		if(ret != 0)
+		{
+			printk("BOOTCTRL:error rollback\n");
+		}
+//xf.li@20230313 modify for ab_rollback end
 		kernel_restart("dm-verity device corrupted");
 	}