From b5e618181a927210f8be1d3d2249d31904ba358d Mon Sep 17 00:00:00 2001 From: Pavel Emelianov Date: Tue, 8 May 2007 00:30:19 -0700 Subject: Introduce a handy list_first_entry macro There are many places in the kernel where the construction like foo = list_entry(head->next, struct foo_struct, list); are used. The code might look more descriptive and neat if using the macro list_first_entry(head, type, member) \ list_entry((head)->next, type, member) Here is the macro itself and the examples of its usage in the generic code. If it will turn out to be useful, I can prepare the set of patches to inject in into arch-specific code, drivers, networking, etc. Signed-off-by: Pavel Emelianov Signed-off-by: Kirill Korotaev Cc: Randy Dunlap Cc: Andi Kleen Cc: Zach Brown Cc: Davide Libenzi Cc: John McCutchan Cc: Thomas Gleixner Cc: Ingo Molnar Cc: john stultz Cc: Ram Pai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/pnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fs/pnode.c') diff --git a/fs/pnode.c b/fs/pnode.c index 56aacea..89940f2 100644 --- a/fs/pnode.c +++ b/fs/pnode.c @@ -59,7 +59,7 @@ static int do_make_slave(struct vfsmount *mnt) } else { struct list_head *p = &mnt->mnt_slave_list; while (!list_empty(p)) { - slave_mnt = list_entry(p->next, + slave_mnt = list_first_entry(p, struct vfsmount, mnt_slave); list_del_init(&slave_mnt->mnt_slave); slave_mnt->mnt_master = NULL; -- cgit v1.1