|
@@ -1494,17 +1494,6 @@ static void process_discard_cell_no_passdown(struct thin_c *tc,
|
|
|
pool->process_prepared_discard(m);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * __bio_inc_remaining() is used to defer parent bios's end_io until
|
|
|
- * we _know_ all chained sub range discard bios have completed.
|
|
|
- */
|
|
|
-static inline void __bio_inc_remaining(struct bio *bio)
|
|
|
-{
|
|
|
- bio->bi_flags |= (1 << BIO_CHAIN);
|
|
|
- smp_mb__before_atomic();
|
|
|
- atomic_inc(&bio->__bi_remaining);
|
|
|
-}
|
|
|
-
|
|
|
static void break_up_discard_bio(struct thin_c *tc, dm_block_t begin, dm_block_t end,
|
|
|
struct bio *bio)
|
|
|
{
|
|
@@ -1560,7 +1549,7 @@ static void break_up_discard_bio(struct thin_c *tc, dm_block_t begin, dm_block_t
|
|
|
* the implicit decrement that occurs via bio_endio() in
|
|
|
* process_prepared_discard_{passdown,no_passdown}.
|
|
|
*/
|
|
|
- __bio_inc_remaining(bio);
|
|
|
+ bio_inc_remaining(bio);
|
|
|
if (!dm_deferred_set_add_work(pool->all_io_ds, &m->list))
|
|
|
pool->process_prepared_discard(m);
|
|
|
|