Re: [PATCH] drivers/block/ub.c: use list_for_each_entry()

Roland Dreier <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.kernel
Message-ID <[email protected]>
 > > If I just see
 > > 
 > > 	for (pos = list_entry((head)->next, typeof(*pos), member),
 > > 		n = list_entry(pos->member.next, typeof(*pos), member);
 > > 	     &pos->member != (head);
 > > 	     pos = n, n = list_entry(n->member.next, typeof(*n), member))
 > > 
 > > then what am I to think?
 > 
 > You won't catch me writing this kind of crap, so the question is moot.
 > Seriously, a comma operator? Admit it, you just expanded a marcro from
 > list.h by hand. Real people cannot write like that.

Of course I admit it, that is a copy of the definition of list_for_each_safe()
(with just the '/'s removed).  But the point is, if you are writing
something that iterates through a list and deletes entries, you
basically have to write equivalent code.

Just think about how many silly bugs you've written in your life when
(re)implementing linked lists.  By using <linux/list.h>, you avoid all
that, and as a code reviewer that makes my life easier.  It's the same
theory as <linux/kref.h> -- the code is rather trivial (although as
"git log lib/kref.c" shows, not entirely trivial).  But if I see
someone using struct kref, all I have to check is whether she used it
correctly.  I don't have to worry about whether she screwed up the
implementation.

 - R.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.