Messages in this thread | | | Date | Wed, 28 May 2008 18:51:21 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH 3/3] hugetlb-allow-huge-page-mappings-to-be-created-without-reservations |
| |
On Wed, 28 May 2008 00:10:06 +0100 Andy Whitcroft <apw@shadowen.org> wrote:
> + unsigned long idx = ((addr - vma->vm_start) >> HPAGE_SHIFT) + > + (vma->vm_pgoff >> (HPAGE_SHIFT - PAGE_SHIFT)); > + return region_chg(&inode->i_mapping->private_list, > + idx, idx + 1); > + > + } else { > + if (!is_vma_resv_set(vma, HPAGE_RESV_OWNER)) > + return 1; > + } > + > + return 0; > +} > +static void vma_commit_reservation(struct vm_area_struct *vma, > + unsigned long addr) > +{ > + struct address_space *mapping = vma->vm_file->f_mapping; > + struct inode *inode = mapping->host; > + > + if (vma->vm_flags & VM_SHARED) { > + unsigned long idx = ((addr - vma->vm_start) >> HPAGE_SHIFT) + > + (vma->vm_pgoff >> (HPAGE_SHIFT - PAGE_SHIFT)); > + region_add(&inode->i_mapping->private_list, idx, idx + 1);
There are a couple more users of the little helper function which I suggested that Mel add.
They both use ulong too - I do think that pgoff_t has a little documentary value.
I guess these changes impact the manpages, but the mmap manpage doesn't seem to know about huge pages at all.
| |