summaryrefslogtreecommitdiff
path: root/include/linux/list.h
diff options
context:
space:
mode:
authorDave Jones <davej@delerium.codemonkey.org.uk>2003-12-16 01:02:35 +0000
committerDave Jones <davej@delerium.codemonkey.org.uk>2003-12-16 01:02:35 +0000
commit3cdecffe5561dd49cc2b203dc1475e43f87fbbe8 (patch)
tree52ba67d634f4be2f4a541171bc01a103b110ab44 /include/linux/list.h
parent2fa72d28f55baa95d7f2f27f38e267cd506ce6d4 (diff)
parent056ffaadc8a7197d681e12b2da9ab61ca68e9a97 (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.h12
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)
{