aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-thin.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/dm-thin.c')
-rw-r--r--drivers/md/dm-thin.c42
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 */
529static void cell_defer_except(struct thin_c *tc, struct dm_bio_prison_cell *cell) 529static 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;