block: loop: prepare for supporing direct IO
[linux-2.6-block.git] / drivers / block / loop.h
index 25e8997ed2467f2aa1478636780d0bbb918a6cd8..d1de2217c09abfe6d2496da5be484bf1d2ad4f07 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/blk-mq.h>
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
-#include <linux/workqueue.h>
+#include <linux/kthread.h>
 #include <uapi/linux/loop.h>
 
 /* Possible states of device */
@@ -54,12 +54,11 @@ struct loop_device {
        gfp_t           old_gfp_mask;
 
        spinlock_t              lo_lock;
-       struct workqueue_struct *wq;
-       struct list_head        write_cmd_head;
-       struct work_struct      write_work;
-       bool                    write_started;
        int                     lo_state;
        struct mutex            lo_ctl_mutex;
+       struct kthread_worker   worker;
+       struct task_struct      *worker_task;
+       bool                    use_dio;
 
        struct request_queue    *lo_queue;
        struct blk_mq_tag_set   tag_set;
@@ -67,7 +66,7 @@ struct loop_device {
 };
 
 struct loop_cmd {
-       struct work_struct read_work;
+       struct kthread_work work;
        struct request *rq;
        struct list_head list;
 };