X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=drivers%2Fblock%2Floop.h;h=301c27f8323ffd9d53c563ed6ee7785a38b26eaa;hb=79d6d9426ba499fdb07334720364b44909b8a06c;hp=90df5d6485b696bf897dbdf204fa4fea3c414b63;hpb=3711d86a2de17e967b576af8b8a1e9351a7d1466;p=linux-2.6-block.git diff --git a/drivers/block/loop.h b/drivers/block/loop.h index 90df5d6485b6..301c27f8323f 100644 --- a/drivers/block/loop.h +++ b/drivers/block/loop.h @@ -11,8 +11,10 @@ #include #include +#include #include #include +#include #include /* Possible states of device */ @@ -52,19 +54,23 @@ struct loop_device { gfp_t old_gfp_mask; spinlock_t lo_lock; - struct bio_list lo_bio_list; - unsigned int lo_bio_count; + struct list_head write_cmd_head; + struct work_struct write_work; + bool write_started; int lo_state; struct mutex lo_ctl_mutex; - struct task_struct *lo_thread; - wait_queue_head_t lo_event; - /* wait queue for incoming requests */ - wait_queue_head_t lo_req_wait; struct request_queue *lo_queue; + struct blk_mq_tag_set tag_set; struct gendisk *lo_disk; }; +struct loop_cmd { + struct work_struct read_work; + struct request *rq; + struct list_head list; +}; + /* Support for loadable transfer modules */ struct loop_func_table { int number; /* filter type */