doubly linked list in the linux kernel