Loading drivers/md/dm-table.c +11 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ struct dm_table { bool integrity_supported:1; bool singleton:1; bool all_blk_mq:1; unsigned integrity_added:1; /* * Indicates the rw permissions for the new logical Loading Loading @@ -725,6 +726,9 @@ int dm_table_add_target(struct dm_table *t, const char *type, t->immutable_target_type = tgt->type; } if (dm_target_has_integrity(tgt->type)) t->integrity_added = 1; tgt->table = t; tgt->begin = start; tgt->len = len; Loading Loading @@ -1168,6 +1172,10 @@ static int dm_table_register_integrity(struct dm_table *t) struct mapped_device *md = t->md; struct gendisk *template_disk = NULL; /* If target handles integrity itself do not register it here. */ if (t->integrity_added) return 0; template_disk = dm_table_get_integrity_disk(t); if (!template_disk) return 0; Loading Loading @@ -1394,6 +1402,9 @@ static void dm_table_verify_integrity(struct dm_table *t) { struct gendisk *template_disk = NULL; if (t->integrity_added) return; if (t->integrity_supported) { /* * Verify that the original integrity profile Loading include/linux/device-mapper.h +6 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,12 @@ struct target_type { */ typedef unsigned (*dm_num_write_bios_fn) (struct dm_target *ti, struct bio *bio); /* * A target implements own bio data integrity. */ #define DM_TARGET_INTEGRITY 0x00000010 #define dm_target_has_integrity(type) ((type)->features & DM_TARGET_INTEGRITY) struct dm_target { struct dm_table *table; struct target_type *type; Loading Loading
drivers/md/dm-table.c +11 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ struct dm_table { bool integrity_supported:1; bool singleton:1; bool all_blk_mq:1; unsigned integrity_added:1; /* * Indicates the rw permissions for the new logical Loading Loading @@ -725,6 +726,9 @@ int dm_table_add_target(struct dm_table *t, const char *type, t->immutable_target_type = tgt->type; } if (dm_target_has_integrity(tgt->type)) t->integrity_added = 1; tgt->table = t; tgt->begin = start; tgt->len = len; Loading Loading @@ -1168,6 +1172,10 @@ static int dm_table_register_integrity(struct dm_table *t) struct mapped_device *md = t->md; struct gendisk *template_disk = NULL; /* If target handles integrity itself do not register it here. */ if (t->integrity_added) return 0; template_disk = dm_table_get_integrity_disk(t); if (!template_disk) return 0; Loading Loading @@ -1394,6 +1402,9 @@ static void dm_table_verify_integrity(struct dm_table *t) { struct gendisk *template_disk = NULL; if (t->integrity_added) return; if (t->integrity_supported) { /* * Verify that the original integrity profile Loading
include/linux/device-mapper.h +6 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,12 @@ struct target_type { */ typedef unsigned (*dm_num_write_bios_fn) (struct dm_target *ti, struct bio *bio); /* * A target implements own bio data integrity. */ #define DM_TARGET_INTEGRITY 0x00000010 #define dm_target_has_integrity(type) ((type)->features & DM_TARGET_INTEGRITY) struct dm_target { struct dm_table *table; struct target_type *type; Loading