4 * Written by Theodore Ts'o, 3/29/93.
6 * Copyright 1993 by Theodore Ts'o. Redistribution of this file is
7 * permitted under the GNU General Public License.
12 #include <linux/bio.h>
13 #include <linux/blkdev.h>
14 #include <linux/blk-mq.h>
15 #include <linux/spinlock.h>
16 #include <linux/mutex.h>
17 #include <uapi/linux/loop.h>
19 /* Possible states of device */
27 struct loop_func_table;
35 char lo_file_name[LO_NAME_SIZE];
37 struct file * lo_backing_file;
38 struct block_device *lo_device;
44 spinlock_t lo_work_lock;
45 struct workqueue_struct *workqueue;
46 struct work_struct rootcg_work;
47 struct list_head rootcg_cmd_list;
48 struct list_head idle_worker_list;
49 struct rb_root worker_tree;
50 struct timer_list timer;
54 struct request_queue *lo_queue;
55 struct blk_mq_tag_set tag_set;
56 struct gendisk *lo_disk;
57 struct mutex lo_mutex;
59 struct work_struct rundown_work;
63 struct list_head list_entry;
64 bool use_aio; /* use AIO interface to handle I/O */
65 atomic_t ref; /* only for aio */
69 struct cgroup_subsys_state *blkcg_css;
70 struct cgroup_subsys_state *memcg_css;