aboutsummaryrefslogtreecommitdiff
path: root/drivers/md
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/dm.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 8d40f27cce8..bbc7ecf6cf0 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -100,9 +100,6 @@ union map_info *dm_get_mapinfo(struct bio *bio)
* Work processed by per-device workqueue.
*/
struct dm_wq_req {
- enum {
- DM_WQ_FLUSH_DEFERRED,
- } type;
struct work_struct work;
struct mapped_device *md;
void *context;
@@ -1434,32 +1431,24 @@ static void dm_wq_work(struct work_struct *work)
struct mapped_device *md = req->md;
down_write(&md->io_lock);
- switch (req->type) {
- case DM_WQ_FLUSH_DEFERRED:
- __flush_deferred_io(md);
- break;
- default:
- DMERR("dm_wq_work: unrecognised work type %d", req->type);
- BUG();
- }
+ __flush_deferred_io(md);
up_write(&md->io_lock);
}
-static void dm_wq_queue(struct mapped_device *md, int type, void *context,
+static void dm_wq_queue(struct mapped_device *md, void *context,
struct dm_wq_req *req)
{
- req->type = type;
req->md = md;
req->context = context;
INIT_WORK(&req->work, dm_wq_work);
queue_work(md->wq, &req->work);
}
-static void dm_queue_flush(struct mapped_device *md, int type, void *context)
+static void dm_queue_flush(struct mapped_device *md, void *context)
{
struct dm_wq_req req;
- dm_wq_queue(md, type, context, &req);
+ dm_wq_queue(md, context, &req);
flush_workqueue(md->wq);
}
@@ -1605,7 +1594,7 @@ int dm_suspend(struct mapped_device *md, unsigned suspend_flags)
/* were we interrupted ? */
if (r < 0) {
- dm_queue_flush(md, DM_WQ_FLUSH_DEFERRED, NULL);
+ dm_queue_flush(md, NULL);
unlock_fs(md);
goto out; /* pushback list is already flushed, so skip flush */
@@ -1645,7 +1634,7 @@ int dm_resume(struct mapped_device *md)
if (r)
goto out;
- dm_queue_flush(md, DM_WQ_FLUSH_DEFERRED, NULL);
+ dm_queue_flush(md, NULL);
unlock_fs(md);