diff options
Diffstat (limited to 'block/noop-iosched.c')
-rw-r--r-- | block/noop-iosched.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/block/noop-iosched.c b/block/noop-iosched.c new file mode 100644 index 000000000000..e54f006e7e60 --- /dev/null +++ b/block/noop-iosched.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * elevator noop | ||
3 | */ | ||
4 | #include <linux/blkdev.h> | ||
5 | #include <linux/elevator.h> | ||
6 | #include <linux/bio.h> | ||
7 | #include <linux/module.h> | ||
8 | #include <linux/init.h> | ||
9 | |||
10 | static void elevator_noop_add_request(request_queue_t *q, struct request *rq) | ||
11 | { | ||
12 | rq->flags |= REQ_NOMERGE; | ||
13 | elv_dispatch_add_tail(q, rq); | ||
14 | } | ||
15 | |||
16 | static int elevator_noop_dispatch(request_queue_t *q, int force) | ||
17 | { | ||
18 | return 0; | ||
19 | } | ||
20 | |||
21 | static struct elevator_type elevator_noop = { | ||
22 | .ops = { | ||
23 | .elevator_dispatch_fn = elevator_noop_dispatch, | ||
24 | .elevator_add_req_fn = elevator_noop_add_request, | ||
25 | }, | ||
26 | .elevator_name = "noop", | ||
27 | .elevator_owner = THIS_MODULE, | ||
28 | }; | ||
29 | |||
30 | static int __init noop_init(void) | ||
31 | { | ||
32 | return elv_register(&elevator_noop); | ||
33 | } | ||
34 | |||
35 | static void __exit noop_exit(void) | ||
36 | { | ||
37 | elv_unregister(&elevator_noop); | ||
38 | } | ||
39 | |||
40 | module_init(noop_init); | ||
41 | module_exit(noop_exit); | ||
42 | |||
43 | |||
44 | MODULE_AUTHOR("Jens Axboe"); | ||
45 | MODULE_LICENSE("GPL"); | ||
46 | MODULE_DESCRIPTION("No-op IO scheduler"); | ||