Merge tag 'trace-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[sfrench/cifs-2.6.git] / include / linux / elevator.h
index 015bb59c0331d64ef2e5b4cf0edbdb53b054c333..2e9e2763bf47dbea239976034e32fd11f14826f7 100644 (file)
@@ -23,74 +23,6 @@ enum elv_merge {
        ELEVATOR_DISCARD_MERGE  = 3,
 };
 
-typedef enum elv_merge (elevator_merge_fn) (struct request_queue *, struct request **,
-                                struct bio *);
-
-typedef void (elevator_merge_req_fn) (struct request_queue *, struct request *, struct request *);
-
-typedef void (elevator_merged_fn) (struct request_queue *, struct request *, enum elv_merge);
-
-typedef int (elevator_allow_bio_merge_fn) (struct request_queue *,
-                                          struct request *, struct bio *);
-
-typedef int (elevator_allow_rq_merge_fn) (struct request_queue *,
-                                         struct request *, struct request *);
-
-typedef void (elevator_bio_merged_fn) (struct request_queue *,
-                                               struct request *, struct bio *);
-
-typedef int (elevator_dispatch_fn) (struct request_queue *, int);
-
-typedef void (elevator_add_req_fn) (struct request_queue *, struct request *);
-typedef struct request *(elevator_request_list_fn) (struct request_queue *, struct request *);
-typedef void (elevator_completed_req_fn) (struct request_queue *, struct request *);
-typedef int (elevator_may_queue_fn) (struct request_queue *, unsigned int);
-
-typedef void (elevator_init_icq_fn) (struct io_cq *);
-typedef void (elevator_exit_icq_fn) (struct io_cq *);
-typedef int (elevator_set_req_fn) (struct request_queue *, struct request *,
-                                  struct bio *, gfp_t);
-typedef void (elevator_put_req_fn) (struct request *);
-typedef void (elevator_activate_req_fn) (struct request_queue *, struct request *);
-typedef void (elevator_deactivate_req_fn) (struct request_queue *, struct request *);
-
-typedef int (elevator_init_fn) (struct request_queue *,
-                               struct elevator_type *e);
-typedef void (elevator_exit_fn) (struct elevator_queue *);
-typedef void (elevator_registered_fn) (struct request_queue *);
-
-struct elevator_ops
-{
-       elevator_merge_fn *elevator_merge_fn;
-       elevator_merged_fn *elevator_merged_fn;
-       elevator_merge_req_fn *elevator_merge_req_fn;
-       elevator_allow_bio_merge_fn *elevator_allow_bio_merge_fn;
-       elevator_allow_rq_merge_fn *elevator_allow_rq_merge_fn;
-       elevator_bio_merged_fn *elevator_bio_merged_fn;
-
-       elevator_dispatch_fn *elevator_dispatch_fn;
-       elevator_add_req_fn *elevator_add_req_fn;
-       elevator_activate_req_fn *elevator_activate_req_fn;
-       elevator_deactivate_req_fn *elevator_deactivate_req_fn;
-
-       elevator_completed_req_fn *elevator_completed_req_fn;
-
-       elevator_request_list_fn *elevator_former_req_fn;
-       elevator_request_list_fn *elevator_latter_req_fn;
-
-       elevator_init_icq_fn *elevator_init_icq_fn;     /* see iocontext.h */
-       elevator_exit_icq_fn *elevator_exit_icq_fn;     /* ditto */
-
-       elevator_set_req_fn *elevator_set_req_fn;
-       elevator_put_req_fn *elevator_put_req_fn;
-
-       elevator_may_queue_fn *elevator_may_queue_fn;
-
-       elevator_init_fn *elevator_init_fn;
-       elevator_exit_fn *elevator_exit_fn;
-       elevator_registered_fn *elevator_registered_fn;
-};
-
 struct blk_mq_alloc_data;
 struct blk_mq_hw_ctx;
 
@@ -137,17 +69,14 @@ struct elevator_type
        struct kmem_cache *icq_cache;
 
        /* fields provided by elevator implementation */
-       union {
-               struct elevator_ops sq;
-               struct elevator_mq_ops mq;
-       } ops;
+       struct elevator_mq_ops ops;
+
        size_t icq_size;        /* see iocontext.h */
        size_t icq_align;       /* ditto */
        struct elv_fs_entry *elevator_attrs;
        char elevator_name[ELV_NAME_MAX];
        const char *elevator_alias;
        struct module *elevator_owner;
-       bool uses_mq;
 #ifdef CONFIG_BLK_DEBUG_FS
        const struct blk_mq_debugfs_attr *queue_debugfs_attrs;
        const struct blk_mq_debugfs_attr *hctx_debugfs_attrs;
@@ -175,40 +104,25 @@ struct elevator_queue
        struct kobject kobj;
        struct mutex sysfs_lock;
        unsigned int registered:1;
-       unsigned int uses_mq:1;
        DECLARE_HASHTABLE(hash, ELV_HASH_BITS);
 };
 
 /*
  * block elevator interface
  */
-extern void elv_dispatch_sort(struct request_queue *, struct request *);
-extern void elv_dispatch_add_tail(struct request_queue *, struct request *);
-extern void elv_add_request(struct request_queue *, struct request *, int);
-extern void __elv_add_request(struct request_queue *, struct request *, int);
 extern enum elv_merge elv_merge(struct request_queue *, struct request **,
                struct bio *);
 extern void elv_merge_requests(struct request_queue *, struct request *,
                               struct request *);
 extern void elv_merged_request(struct request_queue *, struct request *,
                enum elv_merge);
-extern void elv_bio_merged(struct request_queue *q, struct request *,
-                               struct bio *);
 extern bool elv_attempt_insert_merge(struct request_queue *, struct request *);
-extern void elv_requeue_request(struct request_queue *, struct request *);
 extern struct request *elv_former_request(struct request_queue *, struct request *);
 extern struct request *elv_latter_request(struct request_queue *, struct request *);
-extern int elv_may_queue(struct request_queue *, unsigned int);
-extern void elv_completed_request(struct request_queue *, struct request *);
-extern int elv_set_request(struct request_queue *q, struct request *rq,
-                          struct bio *bio, gfp_t gfp_mask);
-extern void elv_put_request(struct request_queue *, struct request *);
-extern void elv_drain_elevator(struct request_queue *);
 
 /*
  * io scheduler registration
  */
-extern void __init load_default_elevator_module(void);
 extern int elv_register(struct elevator_type *);
 extern void elv_unregister(struct elevator_type *);
 
@@ -260,9 +174,5 @@ enum {
 #define rq_entry_fifo(ptr)     list_entry((ptr), struct request, queuelist)
 #define rq_fifo_clear(rq)      list_del_init(&(rq)->queuelist)
 
-#else /* CONFIG_BLOCK */
-
-static inline void load_default_elevator_module(void) { }
-
 #endif /* CONFIG_BLOCK */
 #endif