diff options
| author | Dave Jones <davej@delerium.codemonkey.org.uk> | 2003-12-16 01:02:35 +0000 |
|---|---|---|
| committer | Dave Jones <davej@delerium.codemonkey.org.uk> | 2003-12-16 01:02:35 +0000 |
| commit | 3cdecffe5561dd49cc2b203dc1475e43f87fbbe8 (patch) | |
| tree | 52ba67d634f4be2f4a541171bc01a103b110ab44 /include/linux/list.h | |
| parent | 2fa72d28f55baa95d7f2f27f38e267cd506ce6d4 (diff) | |
| parent | 056ffaadc8a7197d681e12b2da9ab61ca68e9a97 (diff) | |
Merge delerium.codemonkey.org.uk:/mnt/nfs/sepia/bar/src/kernel/2.6/trees/bk-linus
into delerium.codemonkey.org.uk:/mnt/nfs/sepia/bar/src/kernel/2.6/trees/agpgart
Diffstat (limited to 'include/linux/list.h')
| -rw-r--r-- | include/linux/list.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/list.h b/include/linux/list.h index b7d383e6a312..0835011b0ffb 100644 --- a/include/linux/list.h +++ b/include/linux/list.h @@ -208,6 +208,18 @@ static inline int list_empty(const struct list_head *head) return head->next == head; } +/** + * list_empty_careful - tests whether a list is + * empty _and_ checks that no other CPU might be + * in the process of still modifying either member + * @head: the list to test. + */ +static inline int list_empty_careful(const struct list_head *head) +{ + struct list_head *next = head->next; + return (next == head) && (next == head->prev); +} + static inline void __list_splice(struct list_head *list, struct list_head *head) { |
