bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH 1/6] libpager: Fix mixing up success and error


From: Samuel Thibault
Subject: Re: [PATCH 1/6] libpager: Fix mixing up success and error
Date: Thu, 6 May 2021 23:54:59 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Sergey Bugaev, le jeu. 06 mai 2021 15:56:26 +0300, a ecrit:
> _pager_pagemap_resize () returns an error or 0 on success,
> not a boolean.

Quite trivially bogus indeed :)
Applied, thanks!

> ---
>  libpager/offer-page.c | 27 ++++++++++++++-------------
>  1 file changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/libpager/offer-page.c b/libpager/offer-page.c
> index 9f090bcb..ddea236a 100644
> --- a/libpager/offer-page.c
> +++ b/libpager/offer-page.c
> @@ -31,21 +31,22 @@ pager_offer_page (struct pager *p,
>    pthread_mutex_lock (&p->interlock);
>  
>    if (_pager_pagemap_resize (p, offset + vm_page_size))
> +    goto release_out;
> +
> +  short *pm_entry = &p->pagemap[offset / vm_page_size];
> +
> +  while (*pm_entry & PM_INCORE)
>      {
> -      short *pm_entry = &p->pagemap[offset / vm_page_size];
> -
> -      while (*pm_entry & PM_INCORE)
> -     {
> -       pthread_mutex_unlock (&p->interlock);
> -       pager_flush_some (p, offset, vm_page_size, 1);
> -       pthread_mutex_lock (&p->interlock);
> -     }
> -      *pm_entry |= PM_INCORE;
> -
> -      memory_object_data_supply (p->memobjcntl, offset, buf, vm_page_size, 0,
> -                              writelock ? VM_PROT_WRITE : VM_PROT_NONE, 
> -                              precious, MACH_PORT_NULL);
> +      pthread_mutex_unlock (&p->interlock);
> +      pager_flush_some (p, offset, vm_page_size, 1);
> +      pthread_mutex_lock (&p->interlock);
>      }
> +  *pm_entry |= PM_INCORE;
> +
> +  memory_object_data_supply (p->memobjcntl, offset, buf, vm_page_size, 0,
> +                             writelock ? VM_PROT_WRITE : VM_PROT_NONE,
> +                             precious, MACH_PORT_NULL);
>  
> + release_out:
>    pthread_mutex_unlock (&p->interlock);
>  }
> -- 
> 2.31.1
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]