mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
[RBTREE] Change rbtree off-tree marking in I/O schedulers.
They were abusing the rb_color field to mark nodes which weren't currently on the tree. Fix that to use the same method as eventpoll did -- setting the parent pointer to point back to itself. And use the appropriate accessor macros for setting and reading the parent. Signed-off-by: David Woodhouse <[email protected]>
This commit is contained in:
parent
7fe1e133bf
commit
3db3a44530
3 changed files with 5 additions and 13 deletions
|
|
@ -165,10 +165,9 @@ deadline_find_drq_hash(struct deadline_data *dd, sector_t offset)
|
|||
/*
|
||||
* rb tree support functions
|
||||
*/
|
||||
#define RB_NONE (2)
|
||||
#define RB_EMPTY(root) ((root)->rb_node == NULL)
|
||||
#define ON_RB(node) ((node)->rb_color != RB_NONE)
|
||||
#define RB_CLEAR(node) ((node)->rb_color = RB_NONE)
|
||||
#define ON_RB(node) (rb_parent(node) != node)
|
||||
#define RB_CLEAR(node) (rb_set_parent(node, node))
|
||||
#define rb_entry_drq(node) rb_entry((node), struct deadline_rq, rb_node)
|
||||
#define DRQ_RB_ROOT(dd, drq) (&(dd)->sort_list[rq_data_dir((drq)->request)])
|
||||
#define rq_rb_key(rq) (rq)->sector
|
||||
|
|
|
|||
Loading…
Reference in a new issue