Whamcloud - gitweb
file xnu_types.h was initially added on branch b_port_step.
[fs/lustre-release.git] / lustre / kernel_patches / patches / vmalloc_to_page-2.4.19-pre1.patch
1 Index: linux-2.4.19-pre1/mm/memory.c
2 ===================================================================
3 --- linux-2.4.19-pre1.orig/mm/memory.c  2004-01-14 01:11:29.000000000 +0300
4 +++ linux-2.4.19-pre1/mm/memory.c       2004-01-14 01:54:44.000000000 +0300
5 @@ -1470,3 +1470,25 @@
6                         len, write, 0, NULL, NULL);
7         return ret == len ? 0 : -1;
8  }
9 +
10 +struct page * vmalloc_to_page(void * vmalloc_addr)
11 +{
12 +       unsigned long addr = (unsigned long) vmalloc_addr;
13 +       struct page *page = NULL;
14 +       pmd_t *pmd;
15 +       pte_t *ptep, pte;
16 +       pgd_t *pgd;
17 +       
18 +       pgd = pgd_offset_k(addr);
19 +       if (!pgd_none(*pgd)) {
20 +               pmd = pmd_offset(pgd, addr);
21 +               if (!pmd_none(*pmd)) {
22 +                       ptep = pte_offset(pmd, addr);
23 +                       pte = *ptep;
24 +                       if (pte_present(pte)) {
25 +                               page = pte_page(pte);
26 +                       }
27 +               }
28 +       }
29 +       return page;
30 +}
31 Index: linux-2.4.19-pre1/kernel/ksyms.c
32 ===================================================================
33 --- linux-2.4.19-pre1.orig/kernel/ksyms.c       2004-01-14 01:22:28.000000000 +0300
34 +++ linux-2.4.19-pre1/kernel/ksyms.c    2004-01-14 01:51:55.000000000 +0300
35 @@ -112,6 +112,8 @@
36  EXPORT_SYMBOL(kfree);
37  EXPORT_SYMBOL(vfree);
38  EXPORT_SYMBOL(__vmalloc);
39 +extern struct page * vmalloc_to_page(void *addr);
40 +EXPORT_SYMBOL(vmalloc_to_page);
41  EXPORT_SYMBOL(mem_map);
42  EXPORT_SYMBOL(remap_page_range);
43  EXPORT_SYMBOL(max_mapnr);