diff options
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/list.h | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/libglusterfs/src/list.h b/libglusterfs/src/list.h index 7f3712b51b4..794586e35f6 100644 --- a/libglusterfs/src/list.h +++ b/libglusterfs/src/list.h @@ -46,6 +46,21 @@ list_add_tail (struct list_head *new, struct list_head *head)  static inline void +list_add_order (struct list_head *new, struct list_head *head, +                int (*compare)(struct list_head *, struct list_head *)) +{ +        struct list_head *pos = head->next; + +        while ( pos != head ) { +                if (compare(new, pos) <= 0) +                        break; +                pos = pos->next; +        } + +        list_add_tail(new, pos); +} + +static inline void  list_del (struct list_head *old)  {  	old->prev->next = old->next;  | 
