Loading drivers/md/dm-linear.c +0 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,6 @@ static struct target_type linear_target = { .status = linear_status, .ioctl = linear_ioctl, .merge = linear_merge, .features = DM_TARGET_SUPPORTS_BARRIERS, }; int __init dm_linear_init(void) Loading drivers/md/dm-table.c +0 −19 Original line number Diff line number Diff line Loading @@ -52,8 +52,6 @@ struct dm_table { sector_t *highs; struct dm_target *targets; unsigned barriers_supported:1; /* * Indicates the rw permissions for the new logical * device. This should be a combination of FMODE_READ Loading Loading @@ -243,7 +241,6 @@ int dm_table_create(struct dm_table **result, fmode_t mode, INIT_LIST_HEAD(&t->devices); atomic_set(&t->holders, 0); t->barriers_supported = 1; if (!num_targets) num_targets = KEYS_PER_NODE; Loading Loading @@ -751,10 +748,6 @@ int dm_table_add_target(struct dm_table *t, const char *type, /* FIXME: the plan is to combine high here and then have * the merge fn apply the target level restrictions. */ combine_restrictions_low(&t->limits, &tgt->limits); if (!(tgt->type->features & DM_TARGET_SUPPORTS_BARRIERS)) t->barriers_supported = 0; return 0; bad: Loading Loading @@ -799,12 +792,6 @@ int dm_table_complete(struct dm_table *t) check_for_valid_limits(&t->limits); /* * We only support barriers if there is exactly one underlying device. */ if (!list_is_singular(&t->devices)) t->barriers_supported = 0; /* how many indexes will the btree have ? */ leaf_nodes = dm_div_up(t->num_targets, KEYS_PER_NODE); t->depth = 1 + int_log(leaf_nodes, CHILDREN_PER_NODE); Loading Loading @@ -1059,12 +1046,6 @@ struct mapped_device *dm_table_get_md(struct dm_table *t) return t->md; } int dm_table_barrier_ok(struct dm_table *t) { return t->barriers_supported; } EXPORT_SYMBOL(dm_table_barrier_ok); EXPORT_SYMBOL(dm_vcalloc); EXPORT_SYMBOL(dm_get_device); EXPORT_SYMBOL(dm_put_device); Loading drivers/md/dm.c +10 −5 Original line number Diff line number Diff line Loading @@ -851,11 +851,7 @@ static void __split_and_process_bio(struct mapped_device *md, struct bio *bio) bio_io_error(bio); return; } if (unlikely(bio_barrier(bio) && !dm_table_barrier_ok(ci.map))) { dm_table_put(ci.map); bio_endio(bio, -EOPNOTSUPP); return; } ci.md = md; ci.bio = bio; ci.io = alloc_io(md); Loading Loading @@ -937,6 +933,15 @@ static int dm_request(struct request_queue *q, struct bio *bio) struct mapped_device *md = q->queuedata; int cpu; /* * There is no use in forwarding any barrier request since we can't * guarantee it is (or can be) handled by the targets correctly. */ if (unlikely(bio_barrier(bio))) { bio_endio(bio, -EOPNOTSUPP); return 0; } down_read(&md->io_lock); cpu = part_stat_lock(); Loading drivers/md/dm.h +0 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ int dm_table_any_congested(struct dm_table *t, int bdi_bits); * To check the return value from dm_table_find_target(). */ #define dm_target_is_valid(t) ((t)->table) int dm_table_barrier_ok(struct dm_table *t); /*----------------------------------------------------------------- * A registry of target types. Loading include/linux/device-mapper.h +0 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,6 @@ void dm_put_device(struct dm_target *ti, struct dm_dev *d); /* * Target features */ #define DM_TARGET_SUPPORTS_BARRIERS 0x00000001 struct target_type { uint64_t features; Loading Loading
drivers/md/dm-linear.c +0 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,6 @@ static struct target_type linear_target = { .status = linear_status, .ioctl = linear_ioctl, .merge = linear_merge, .features = DM_TARGET_SUPPORTS_BARRIERS, }; int __init dm_linear_init(void) Loading
drivers/md/dm-table.c +0 −19 Original line number Diff line number Diff line Loading @@ -52,8 +52,6 @@ struct dm_table { sector_t *highs; struct dm_target *targets; unsigned barriers_supported:1; /* * Indicates the rw permissions for the new logical * device. This should be a combination of FMODE_READ Loading Loading @@ -243,7 +241,6 @@ int dm_table_create(struct dm_table **result, fmode_t mode, INIT_LIST_HEAD(&t->devices); atomic_set(&t->holders, 0); t->barriers_supported = 1; if (!num_targets) num_targets = KEYS_PER_NODE; Loading Loading @@ -751,10 +748,6 @@ int dm_table_add_target(struct dm_table *t, const char *type, /* FIXME: the plan is to combine high here and then have * the merge fn apply the target level restrictions. */ combine_restrictions_low(&t->limits, &tgt->limits); if (!(tgt->type->features & DM_TARGET_SUPPORTS_BARRIERS)) t->barriers_supported = 0; return 0; bad: Loading Loading @@ -799,12 +792,6 @@ int dm_table_complete(struct dm_table *t) check_for_valid_limits(&t->limits); /* * We only support barriers if there is exactly one underlying device. */ if (!list_is_singular(&t->devices)) t->barriers_supported = 0; /* how many indexes will the btree have ? */ leaf_nodes = dm_div_up(t->num_targets, KEYS_PER_NODE); t->depth = 1 + int_log(leaf_nodes, CHILDREN_PER_NODE); Loading Loading @@ -1059,12 +1046,6 @@ struct mapped_device *dm_table_get_md(struct dm_table *t) return t->md; } int dm_table_barrier_ok(struct dm_table *t) { return t->barriers_supported; } EXPORT_SYMBOL(dm_table_barrier_ok); EXPORT_SYMBOL(dm_vcalloc); EXPORT_SYMBOL(dm_get_device); EXPORT_SYMBOL(dm_put_device); Loading
drivers/md/dm.c +10 −5 Original line number Diff line number Diff line Loading @@ -851,11 +851,7 @@ static void __split_and_process_bio(struct mapped_device *md, struct bio *bio) bio_io_error(bio); return; } if (unlikely(bio_barrier(bio) && !dm_table_barrier_ok(ci.map))) { dm_table_put(ci.map); bio_endio(bio, -EOPNOTSUPP); return; } ci.md = md; ci.bio = bio; ci.io = alloc_io(md); Loading Loading @@ -937,6 +933,15 @@ static int dm_request(struct request_queue *q, struct bio *bio) struct mapped_device *md = q->queuedata; int cpu; /* * There is no use in forwarding any barrier request since we can't * guarantee it is (or can be) handled by the targets correctly. */ if (unlikely(bio_barrier(bio))) { bio_endio(bio, -EOPNOTSUPP); return 0; } down_read(&md->io_lock); cpu = part_stat_lock(); Loading
drivers/md/dm.h +0 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ int dm_table_any_congested(struct dm_table *t, int bdi_bits); * To check the return value from dm_table_find_target(). */ #define dm_target_is_valid(t) ((t)->table) int dm_table_barrier_ok(struct dm_table *t); /*----------------------------------------------------------------- * A registry of target types. Loading
include/linux/device-mapper.h +0 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,6 @@ void dm_put_device(struct dm_target *ti, struct dm_dev *d); /* * Target features */ #define DM_TARGET_SUPPORTS_BARRIERS 0x00000001 struct target_type { uint64_t features; Loading