Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 105292
b: refs/heads/master
c: a858f7b
h: refs/heads/master
v: v3
  • Loading branch information
Johannes Weiner authored and Linus Torvalds committed Jul 24, 2008
1 parent c494c22 commit 736ff77
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 84afd99b8398c9d73af8238aa3cd835858e3097a
refs/heads/master: a858f7b2e9bb4eb665176dde5cf32eeaaf90f153
29 changes: 9 additions & 20 deletions trunk/mm/hugetlb.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,22 +199,11 @@ static long region_count(struct list_head *head, long f, long t)
return chg;
}

/*
* Convert the address within this vma to the page offset within
* the mapping, in base page units.
*/
static pgoff_t vma_page_offset(struct vm_area_struct *vma,
unsigned long address)
{
return ((address - vma->vm_start) >> PAGE_SHIFT) +
(vma->vm_pgoff >> PAGE_SHIFT);
}

/*
* Convert the address within this vma to the page offset within
* the mapping, in pagecache page units; huge pages here.
*/
static pgoff_t vma_pagecache_offset(struct vm_area_struct *vma,
static pgoff_t vma_hugecache_offset(struct vm_area_struct *vma,
unsigned long address)
{
return ((address - vma->vm_start) >> HPAGE_SHIFT) +
Expand Down Expand Up @@ -806,7 +795,7 @@ static int vma_needs_reservation(struct vm_area_struct *vma, unsigned long addr)
struct inode *inode = mapping->host;

if (vma->vm_flags & VM_SHARED) {
pgoff_t idx = vma_pagecache_offset(vma, addr);
pgoff_t idx = vma_hugecache_offset(vma, addr);
return region_chg(&inode->i_mapping->private_list,
idx, idx + 1);

Expand All @@ -815,7 +804,7 @@ static int vma_needs_reservation(struct vm_area_struct *vma, unsigned long addr)

} else {
int err;
pgoff_t idx = vma_pagecache_offset(vma, addr);
pgoff_t idx = vma_hugecache_offset(vma, addr);
struct resv_map *reservations = vma_resv_map(vma);

err = region_chg(&reservations->regions, idx, idx + 1);
Expand All @@ -831,11 +820,11 @@ static void vma_commit_reservation(struct vm_area_struct *vma,
struct inode *inode = mapping->host;

if (vma->vm_flags & VM_SHARED) {
pgoff_t idx = vma_pagecache_offset(vma, addr);
pgoff_t idx = vma_hugecache_offset(vma, addr);
region_add(&inode->i_mapping->private_list, idx, idx + 1);

} else if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) {
pgoff_t idx = vma_pagecache_offset(vma, addr);
pgoff_t idx = vma_hugecache_offset(vma, addr);
struct resv_map *reservations = vma_resv_map(vma);

/* Mark this page used in the map. */
Expand Down Expand Up @@ -1153,8 +1142,8 @@ static void hugetlb_vm_op_close(struct vm_area_struct *vma)
unsigned long end;

if (reservations) {
start = vma_pagecache_offset(vma, vma->vm_start);
end = vma_pagecache_offset(vma, vma->vm_end);
start = vma_hugecache_offset(vma, vma->vm_start);
end = vma_hugecache_offset(vma, vma->vm_end);

reserve = (end - start) -
region_count(&reservations->regions, start, end);
Expand Down Expand Up @@ -1471,7 +1460,7 @@ static struct page *hugetlbfs_pagecache_page(struct vm_area_struct *vma,
pgoff_t idx;

mapping = vma->vm_file->f_mapping;
idx = vma_pagecache_offset(vma, address);
idx = vma_hugecache_offset(vma, address);

return find_lock_page(mapping, idx);
}
Expand Down Expand Up @@ -1499,7 +1488,7 @@ static int hugetlb_no_page(struct mm_struct *mm, struct vm_area_struct *vma,
}

mapping = vma->vm_file->f_mapping;
idx = vma_pagecache_offset(vma, address);
idx = vma_hugecache_offset(vma, address);

/*
* Use page lock to guard against racing truncation
Expand Down

0 comments on commit 736ff77

Please sign in to comment.