aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r--drivers/md/dm.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 829d9fc66453..6938bfeb5e2c 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -76,7 +76,6 @@ union map_info *dm_get_mapinfo(struct bio *bio)
76 */ 76 */
77struct dm_wq_req { 77struct dm_wq_req {
78 enum { 78 enum {
79 DM_WQ_FLUSH_ALL,
80 DM_WQ_FLUSH_DEFERRED, 79 DM_WQ_FLUSH_DEFERRED,
81 } type; 80 } type;
82 struct work_struct work; 81 struct work_struct work;
@@ -1395,9 +1394,6 @@ static void dm_wq_work(struct work_struct *work)
1395 1394
1396 down_write(&md->io_lock); 1395 down_write(&md->io_lock);
1397 switch (req->type) { 1396 switch (req->type) {
1398 case DM_WQ_FLUSH_ALL:
1399 __merge_pushback_list(md);
1400 /* pass through */
1401 case DM_WQ_FLUSH_DEFERRED: 1397 case DM_WQ_FLUSH_DEFERRED:
1402 __flush_deferred_io(md); 1398 __flush_deferred_io(md);
1403 break; 1399 break;
@@ -1527,7 +1523,7 @@ int dm_suspend(struct mapped_device *md, unsigned suspend_flags)
1527 if (!md->suspended_bdev) { 1523 if (!md->suspended_bdev) {
1528 DMWARN("bdget failed in dm_suspend"); 1524 DMWARN("bdget failed in dm_suspend");
1529 r = -ENOMEM; 1525 r = -ENOMEM;
1530 goto flush_and_out; 1526 goto out;
1531 } 1527 }
1532 1528
1533 /* 1529 /*
@@ -1578,14 +1574,6 @@ int dm_suspend(struct mapped_device *md, unsigned suspend_flags)
1578 1574
1579 set_bit(DMF_SUSPENDED, &md->flags); 1575 set_bit(DMF_SUSPENDED, &md->flags);
1580 1576
1581flush_and_out:
1582 if (r && noflush)
1583 /*
1584 * Because there may be already I/Os in the pushback list,
1585 * flush them before return.
1586 */
1587 dm_queue_flush(md, DM_WQ_FLUSH_ALL, NULL);
1588
1589out: 1577out:
1590 if (r && md->suspended_bdev) { 1578 if (r && md->suspended_bdev) {
1591 bdput(md->suspended_bdev); 1579 bdput(md->suspended_bdev);