[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110605221344.GJ11521@ZenIV.linux.org.uk>
Date: Sun, 5 Jun 2011 23:13:44 +0100
From: Al Viro <viro@...IV.linux.org.uk>
To: Hugh Dickins <hughd@...gle.com>
Cc: linux-mm@...ck.org, Mel Gorman <mel@....ul.ie>,
linux-kernel@...r.kernel.org
Subject: Re: ENOSPC returned by handle_mm_fault()
On Sun, Jun 05, 2011 at 01:48:55PM -0700, Hugh Dickins wrote:
> On Sun, 5 Jun 2011, Al Viro wrote:
> > On Sun, Jun 05, 2011 at 12:16:08PM -0700, Hugh Dickins wrote:
> >
> > > Good find, news to me. Interesting uses of -PTR_ERR()!
> >
> > You mean, something like the diff below?
>
> Second hunk yes, but first hunk no: there's at least one other place
> (hugetlb_reserve_pages) which calls region_chg(), and expects a
> conventional -errno return from it; and even if there weren't,
> I'd rather not spread these unconventional return values any deeper.
Umm... FWIW, callers of hugetlb_reserve_pages() only check if it's 0;
exact value is lost. But yes, I agree that your variant makes more
sense - they might start caring at some point.
> Signed-off-by: Hugh Dickins <hughd@...gle.com
Acked-by: Al Viro <viro@...iv.linux.org.uk>
> mm/hugetlb.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- 3.0-rc1/mm/hugetlb.c 2011-05-29 18:42:37.425882575 -0700
> +++ linux/mm/hugetlb.c 2011-06-05 13:33:22.795341004 -0700
> @@ -1033,10 +1033,10 @@ static struct page *alloc_huge_page(stru
> */
> chg = vma_needs_reservation(h, vma, addr);
> if (chg < 0)
> - return ERR_PTR(chg);
> + return ERR_PTR(-VM_FAULT_OOM);
> if (chg)
> if (hugetlb_get_quota(inode->i_mapping, chg))
> - return ERR_PTR(-ENOSPC);
> + return ERR_PTR(-VM_FAULT_SIGBUS);
>
> spin_lock(&hugetlb_lock);
> page = dequeue_huge_page_vma(h, vma, addr, avoid_reserve);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists