]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/md/dm-raid1.c
dm raid1: flush workqueue before destruction
[linux-2.6-omap-h63xx.git] / drivers / md / dm-raid1.c
index 92dcc06832a462a3210fbd521c323abce9b43cd0..ec43f9fa4b2acaffed0bf45f79edc5a115f36804 100644 (file)
@@ -656,9 +656,10 @@ static void do_failures(struct mirror_set *ms, struct bio_list *failures)
                return;
 
        if (!ms->log_failure) {
-               while ((bio = bio_list_pop(failures)))
+               while ((bio = bio_list_pop(failures))) {
                        ms->in_sync = 0;
                        dm_rh_mark_nosync(ms->rh, bio, bio->bi_size, 0);
+               }
                return;
        }
 
@@ -1031,6 +1032,7 @@ static void mirror_dtr(struct dm_target *ti)
 
        del_timer_sync(&ms->timer);
        flush_workqueue(ms->kmirrord_wq);
+       flush_scheduled_work();
        dm_kcopyd_client_destroy(ms->kcopyd_client);
        destroy_workqueue(ms->kmirrord_wq);
        free_context(ms, ti, ms->nr_mirrors);