Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754333Ab3FFTtY (ORCPT ); Thu, 6 Jun 2013 15:49:24 -0400 Received: from mail-ob0-f180.google.com ([209.85.214.180]:33800 "EHLO mail-ob0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752449Ab3FFTtW convert rfc822-to-8bit (ORCPT ); Thu, 6 Jun 2013 15:49:22 -0400 MIME-Version: 1.0 In-Reply-To: <20130606181248.GA17707@logfs.org> References: <1370280485-10047-1-git-send-email-joern@logfs.org> <1370280485-10047-2-git-send-email-joern@logfs.org> <20130606181248.GA17707@logfs.org> Date: Thu, 6 Jun 2013 22:49:22 +0300 Message-ID: Subject: Re: [PATCH 1/2] list: add list_for_each_entry_del From: Andy Shevchenko To: =?UTF-8?Q?J=C3=B6rn_Engel?= Cc: "linux-kernel@vger.kernel.org" , Chris Mason , linux-btrfs@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1233 Lines: 33 On Thu, Jun 6, 2013 at 9:12 PM, Jörn Engel wrote: > On Thu, 6 June 2013 22:32:55 +0300, Andy Shevchenko wrote: >> On Mon, Jun 3, 2013 at 8:28 PM, Joern Engel wrote: >> > I have seen a lot of boilerplate code that either follows the pattern of >> > while (!list_empty(head)) { >> > pos = list_entry(head->next, struct foo, list); >> > list_del(pos->list); >> > ... >> > } >> > or some variant thereof. >> >> What the problem to use list_for_each_safe()? > > The loop may terminate with elements left on the list. There is more, > but I would consider this the main problem. I didn't quite get what you mean. list_for_each_safe() and list_for_each_entry_safe() traverse across list. User actually decides when the proper time to remove an element from the list. I'm sorry, I didn't see any advantages from list_for_each_del() (or entry variant). -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/