diff options
Diffstat (limited to 'drivers/md/dm-thin.c')
-rw-r--r-- | drivers/md/dm-thin.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c index 063fe04e60e9..2cb81bf3a8e3 100644 --- a/drivers/md/dm-thin.c +++ b/drivers/md/dm-thin.c | |||
@@ -526,7 +526,7 @@ static void cell_defer(struct thin_c *tc, struct dm_bio_prison_cell *cell, | |||
526 | /* | 526 | /* |
527 | * Same as cell_defer except it omits the original holder of the cell. | 527 | * Same as cell_defer except it omits the original holder of the cell. |
528 | */ | 528 | */ |
529 | static void cell_defer_except(struct thin_c *tc, struct dm_bio_prison_cell *cell) | 529 | static void cell_defer_no_holder(struct thin_c *tc, struct dm_bio_prison_cell *cell) |
530 | { | 530 | { |
531 | struct bio_list bios; | 531 | struct bio_list bios; |
532 | struct pool *pool = tc->pool; | 532 | struct pool *pool = tc->pool; |
@@ -583,7 +583,7 @@ static void process_prepared_mapping(struct dm_thin_new_mapping *m) | |||
583 | * the bios in the cell. | 583 | * the bios in the cell. |
584 | */ | 584 | */ |
585 | if (bio) { | 585 | if (bio) { |
586 | cell_defer_except(tc, m->cell); | 586 | cell_defer_no_holder(tc, m->cell); |
587 | bio_endio(bio, 0); | 587 | bio_endio(bio, 0); |
588 | } else | 588 | } else |
589 | cell_defer(tc, m->cell, m->data_block); | 589 | cell_defer(tc, m->cell, m->data_block); |
@@ -598,8 +598,8 @@ static void process_prepared_discard_fail(struct dm_thin_new_mapping *m) | |||
598 | struct thin_c *tc = m->tc; | 598 | struct thin_c *tc = m->tc; |
599 | 599 | ||
600 | bio_io_error(m->bio); | 600 | bio_io_error(m->bio); |
601 | cell_defer_except(tc, m->cell); | 601 | cell_defer_no_holder(tc, m->cell); |
602 | cell_defer_except(tc, m->cell2); | 602 | cell_defer_no_holder(tc, m->cell2); |
603 | mempool_free(m, tc->pool->mapping_pool); | 603 | mempool_free(m, tc->pool->mapping_pool); |
604 | } | 604 | } |
605 | 605 | ||
@@ -608,8 +608,8 @@ static void process_prepared_discard_passdown(struct dm_thin_new_mapping *m) | |||
608 | struct thin_c *tc = m->tc; | 608 | struct thin_c *tc = m->tc; |
609 | 609 | ||
610 | inc_all_io_entry(tc->pool, m->bio); | 610 | inc_all_io_entry(tc->pool, m->bio); |
611 | cell_defer_except(tc, m->cell); | 611 | cell_defer_no_holder(tc, m->cell); |
612 | cell_defer_except(tc, m->cell2); | 612 | cell_defer_no_holder(tc, m->cell2); |
613 | 613 | ||
614 | if (m->pass_discard) | 614 | if (m->pass_discard) |
615 | remap_and_issue(tc, m->bio, m->data_block); | 615 | remap_and_issue(tc, m->bio, m->data_block); |
@@ -950,7 +950,7 @@ static void process_discard(struct thin_c *tc, struct bio *bio) | |||
950 | */ | 950 | */ |
951 | build_data_key(tc->td, lookup_result.block, &key2); | 951 | build_data_key(tc->td, lookup_result.block, &key2); |
952 | if (dm_bio_detain(tc->pool->prison, &key2, bio, &cell2)) { | 952 | if (dm_bio_detain(tc->pool->prison, &key2, bio, &cell2)) { |
953 | cell_defer_except(tc, cell); | 953 | cell_defer_no_holder(tc, cell); |
954 | break; | 954 | break; |
955 | } | 955 | } |
956 | 956 | ||
@@ -977,8 +977,8 @@ static void process_discard(struct thin_c *tc, struct bio *bio) | |||
977 | } | 977 | } |
978 | } else { | 978 | } else { |
979 | inc_all_io_entry(pool, bio); | 979 | inc_all_io_entry(pool, bio); |
980 | cell_defer_except(tc, cell); | 980 | cell_defer_no_holder(tc, cell); |
981 | cell_defer_except(tc, cell2); | 981 | cell_defer_no_holder(tc, cell2); |
982 | 982 | ||
983 | /* | 983 | /* |
984 | * The DM core makes sure that the discard doesn't span | 984 | * The DM core makes sure that the discard doesn't span |
@@ -996,13 +996,13 @@ static void process_discard(struct thin_c *tc, struct bio *bio) | |||
996 | /* | 996 | /* |
997 | * It isn't provisioned, just forget it. | 997 | * It isn't provisioned, just forget it. |
998 | */ | 998 | */ |
999 | cell_defer_except(tc, cell); | 999 | cell_defer_no_holder(tc, cell); |
1000 | bio_endio(bio, 0); | 1000 | bio_endio(bio, 0); |
1001 | break; | 1001 | break; |
1002 | 1002 | ||
1003 | default: | 1003 | default: |
1004 | DMERR("discard: find block unexpectedly returned %d", r); | 1004 | DMERR("discard: find block unexpectedly returned %d", r); |
1005 | cell_defer_except(tc, cell); | 1005 | cell_defer_no_holder(tc, cell); |
1006 | bio_io_error(bio); | 1006 | bio_io_error(bio); |
1007 | break; | 1007 | break; |
1008 | } | 1008 | } |
@@ -1057,7 +1057,7 @@ static void process_shared_bio(struct thin_c *tc, struct bio *bio, | |||
1057 | 1057 | ||
1058 | h->shared_read_entry = dm_deferred_entry_inc(pool->shared_read_ds); | 1058 | h->shared_read_entry = dm_deferred_entry_inc(pool->shared_read_ds); |
1059 | inc_all_io_entry(pool, bio); | 1059 | inc_all_io_entry(pool, bio); |
1060 | cell_defer_except(tc, cell); | 1060 | cell_defer_no_holder(tc, cell); |
1061 | 1061 | ||
1062 | remap_and_issue(tc, bio, lookup_result->block); | 1062 | remap_and_issue(tc, bio, lookup_result->block); |
1063 | } | 1063 | } |
@@ -1074,7 +1074,7 @@ static void provision_block(struct thin_c *tc, struct bio *bio, dm_block_t block | |||
1074 | */ | 1074 | */ |
1075 | if (!bio->bi_size) { | 1075 | if (!bio->bi_size) { |
1076 | inc_all_io_entry(tc->pool, bio); | 1076 | inc_all_io_entry(tc->pool, bio); |
1077 | cell_defer_except(tc, cell); | 1077 | cell_defer_no_holder(tc, cell); |
1078 | 1078 | ||
1079 | remap_and_issue(tc, bio, 0); | 1079 | remap_and_issue(tc, bio, 0); |
1080 | return; | 1080 | return; |
@@ -1085,7 +1085,7 @@ static void provision_block(struct thin_c *tc, struct bio *bio, dm_block_t block | |||
1085 | */ | 1085 | */ |
1086 | if (bio_data_dir(bio) == READ) { | 1086 | if (bio_data_dir(bio) == READ) { |
1087 | zero_fill_bio(bio); | 1087 | zero_fill_bio(bio); |
1088 | cell_defer_except(tc, cell); | 1088 | cell_defer_no_holder(tc, cell); |
1089 | bio_endio(bio, 0); | 1089 | bio_endio(bio, 0); |
1090 | return; | 1090 | return; |
1091 | } | 1091 | } |
@@ -1132,10 +1132,10 @@ static void process_bio(struct thin_c *tc, struct bio *bio) | |||
1132 | case 0: | 1132 | case 0: |
1133 | if (lookup_result.shared) { | 1133 | if (lookup_result.shared) { |
1134 | process_shared_bio(tc, bio, block, &lookup_result); | 1134 | process_shared_bio(tc, bio, block, &lookup_result); |
1135 | cell_defer_except(tc, cell); | 1135 | cell_defer_no_holder(tc, cell); |
1136 | } else { | 1136 | } else { |
1137 | inc_all_io_entry(tc->pool, bio); | 1137 | inc_all_io_entry(tc->pool, bio); |
1138 | cell_defer_except(tc, cell); | 1138 | cell_defer_no_holder(tc, cell); |
1139 | 1139 | ||
1140 | remap_and_issue(tc, bio, lookup_result.block); | 1140 | remap_and_issue(tc, bio, lookup_result.block); |
1141 | } | 1141 | } |
@@ -1144,7 +1144,7 @@ static void process_bio(struct thin_c *tc, struct bio *bio) | |||
1144 | case -ENODATA: | 1144 | case -ENODATA: |
1145 | if (bio_data_dir(bio) == READ && tc->origin_dev) { | 1145 | if (bio_data_dir(bio) == READ && tc->origin_dev) { |
1146 | inc_all_io_entry(tc->pool, bio); | 1146 | inc_all_io_entry(tc->pool, bio); |
1147 | cell_defer_except(tc, cell); | 1147 | cell_defer_no_holder(tc, cell); |
1148 | 1148 | ||
1149 | remap_to_origin_and_issue(tc, bio); | 1149 | remap_to_origin_and_issue(tc, bio); |
1150 | } else | 1150 | } else |
@@ -1153,7 +1153,7 @@ static void process_bio(struct thin_c *tc, struct bio *bio) | |||
1153 | 1153 | ||
1154 | default: | 1154 | default: |
1155 | DMERR("dm_thin_find_block() failed, error = %d", r); | 1155 | DMERR("dm_thin_find_block() failed, error = %d", r); |
1156 | cell_defer_except(tc, cell); | 1156 | cell_defer_no_holder(tc, cell); |
1157 | bio_io_error(bio); | 1157 | bio_io_error(bio); |
1158 | break; | 1158 | break; |
1159 | } | 1159 | } |
@@ -1429,13 +1429,13 @@ static int thin_bio_map(struct dm_target *ti, struct bio *bio, | |||
1429 | 1429 | ||
1430 | build_data_key(tc->td, result.block, &key); | 1430 | build_data_key(tc->td, result.block, &key); |
1431 | if (dm_bio_detain(tc->pool->prison, &key, bio, &cell2)) { | 1431 | if (dm_bio_detain(tc->pool->prison, &key, bio, &cell2)) { |
1432 | cell_defer_except(tc, cell1); | 1432 | cell_defer_no_holder(tc, cell1); |
1433 | return DM_MAPIO_SUBMITTED; | 1433 | return DM_MAPIO_SUBMITTED; |
1434 | } | 1434 | } |
1435 | 1435 | ||
1436 | inc_all_io_entry(tc->pool, bio); | 1436 | inc_all_io_entry(tc->pool, bio); |
1437 | cell_defer_except(tc, cell2); | 1437 | cell_defer_no_holder(tc, cell2); |
1438 | cell_defer_except(tc, cell1); | 1438 | cell_defer_no_holder(tc, cell1); |
1439 | 1439 | ||
1440 | remap(tc, bio, result.block); | 1440 | remap(tc, bio, result.block); |
1441 | return DM_MAPIO_REMAPPED; | 1441 | return DM_MAPIO_REMAPPED; |