Re: [PATCH] slob:Use _safe funtion to iterate partially free list.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jul 04, 2010 at 05:22:33PM +0800, Bob Liu wrote:
> Since a list entry may be removed, so use list_for_each_entry_safe
> instead of list_for_each_entry.
> 
> Signed-off-by: Bob Liu <lliubbo@xxxxxxxxx>
> ---
>  mm/slob.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/slob.c b/mm/slob.c
> index 3f19a34..e2af18b 100644
> --- a/mm/slob.c
> +++ b/mm/slob.c
> @@ -320,7 +320,7 @@ static void *slob_page_alloc(struct slob_page *sp, size_t size, int align)
>   */
>  static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
>  {
> -	struct slob_page *sp;
> +	struct slob_page *sp, *tmp;
>  	struct list_head *prev;
>  	struct list_head *slob_list;
>  	slob_t *b = NULL;
> @@ -335,7 +335,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
>  
>  	spin_lock_irqsave(&slob_lock, flags);
>  	/* Iterate through each partially free page, try to find room */
> -	list_for_each_entry(sp, slob_list, list) {
> +	list_for_each_entry_safe(sp, tmp, slob_list, list) {    
>  #ifdef CONFIG_NUMA

sp's list head is only modified if an allocation was successful, but
then the iteration stops as well.  So I see no reason for your patch.
Did I overlook something?

	Hannes

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]