From a1bbde734aa10aafa4d6904ca8c5bb7c6a63b1ae Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 11 Jul 2006 21:49:15 +0200 Subject: [PATCH] --- yaml --- r: 37533 b: refs/heads/master c: 1fbfdfcddff4df188b24d9d05271a76a85064583 h: refs/heads/master i: 37531: 90c3090a2c8c43d0446ae017bb8597ea044b4de0 v: v3 --- [refs] | 2 +- trunk/include/linux/elevator.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8ed98cb1a16b..794b5a51942a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b8aca35af5e9fbc2e41a3ba1b2e66f24e80ca9b6 +refs/heads/master: 1fbfdfcddff4df188b24d9d05271a76a85064583 diff --git a/trunk/include/linux/elevator.h b/trunk/include/linux/elevator.h index 95b2a04b969c..0e7b1a733919 100644 --- a/trunk/include/linux/elevator.h +++ b/trunk/include/linux/elevator.h @@ -166,4 +166,16 @@ enum { #define rq_end_sector(rq) ((rq)->sector + (rq)->nr_sectors) #define rb_entry_rq(node) rb_entry((node), struct request, rb_node) +/* + * Hack to reuse the donelist list_head as the fifo time holder while + * the request is in the io scheduler. Saves an unsigned long in rq. + */ +#define rq_fifo_time(rq) ((unsigned long) (rq)->donelist.next) +#define rq_set_fifo_time(rq,exp) ((rq)->donelist.next = (void *) (exp)) +#define rq_entry_fifo(ptr) list_entry((ptr), struct request, queuelist) +#define rq_fifo_clear(rq) do { \ + list_del_init(&(rq)->queuelist); \ + INIT_LIST_HEAD(&(rq)->donelist); \ + } while (0) + #endif