[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
>
>
- [PATCH 0/6] Various libpager fixes, Sergey Bugaev, 2021/05/06
- [PATCH 1/6] libpager: Fix mixing up success and error, Sergey Bugaev, 2021/05/06
- Re: [PATCH 1/6] libpager: Fix mixing up success and error,
Samuel Thibault <=
- [PATCH 2/6] libpager: Do not flush in-core pages on offer, Sergey Bugaev, 2021/05/06
- [PATCH 4/6] libpager: Store pagemapsize as vm_size_t, Sergey Bugaev, 2021/05/06
- [PATCH 6/6] libpager: Use libc heap for pagemap, Sergey Bugaev, 2021/05/06
- [PATCH 3/6] libpager: Add error handling to various functions, Sergey Bugaev, 2021/05/06
- [PATCH 5/6] libpager: Fix overallocating pagemap, Sergey Bugaev, 2021/05/06