|
@@ -535,7 +535,7 @@ static void __maybe_add_mapping(struct dm_thin_new_mapping *m)
|
|
|
struct pool *pool = m->tc->pool;
|
|
|
|
|
|
if (m->quiesced && m->prepared) {
|
|
|
- list_add(&m->list, &pool->prepared_mappings);
|
|
|
+ list_add_tail(&m->list, &pool->prepared_mappings);
|
|
|
wake_worker(pool);
|
|
|
}
|
|
|
}
|
|
@@ -1058,7 +1058,7 @@ static void process_discard(struct thin_c *tc, struct bio *bio)
|
|
|
|
|
|
if (!dm_deferred_set_add_work(pool->all_io_ds, &m->list)) {
|
|
|
spin_lock_irqsave(&pool->lock, flags);
|
|
|
- list_add(&m->list, &pool->prepared_discards);
|
|
|
+ list_add_tail(&m->list, &pool->prepared_discards);
|
|
|
spin_unlock_irqrestore(&pool->lock, flags);
|
|
|
wake_worker(pool);
|
|
|
}
|
|
@@ -2919,7 +2919,7 @@ static int thin_endio(struct dm_target *ti, struct bio *bio, int err)
|
|
|
if (!list_empty(&work)) {
|
|
|
spin_lock_irqsave(&pool->lock, flags);
|
|
|
list_for_each_entry_safe(m, tmp, &work, list)
|
|
|
- list_add(&m->list, &pool->prepared_discards);
|
|
|
+ list_add_tail(&m->list, &pool->prepared_discards);
|
|
|
spin_unlock_irqrestore(&pool->lock, flags);
|
|
|
wake_worker(pool);
|
|
|
}
|