950-vm_exports.patch 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --- a/mm/shmem.c
  2. +++ b/mm/shmem.c
  3. @@ -2951,6 +2951,16 @@ out:
  4. /* common code */
  5. +void shmem_set_file(struct vm_area_struct *vma, struct file *file)
  6. +{
  7. + if (vma->vm_file)
  8. + fput(vma->vm_file);
  9. + vma->vm_file = file;
  10. + vma->vm_ops = &shmem_vm_ops;
  11. + vma->vm_flags |= VM_CAN_NONLINEAR;
  12. +}
  13. +EXPORT_SYMBOL_GPL(shmem_set_file);
  14. +
  15. /**
  16. * shmem_file_setup - get an unlinked file living in tmpfs
  17. * @name: name for dentry (to be seen in /proc/<pid>/maps
  18. @@ -3028,11 +3038,8 @@ int shmem_zero_setup(struct vm_area_stru
  19. if (IS_ERR(file))
  20. return PTR_ERR(file);
  21. - if (vma->vm_file)
  22. - fput(vma->vm_file);
  23. - vma->vm_file = file;
  24. - vma->vm_ops = &shmem_vm_ops;
  25. - vma->vm_flags |= VM_CAN_NONLINEAR;
  26. + shmem_set_file(vma, file);
  27. +
  28. return 0;
  29. }
  30. --- a/fs/file.c
  31. +++ b/fs/file.c
  32. @@ -268,6 +268,7 @@ int expand_files(struct files_struct *fi
  33. /* All good, so we try */
  34. return expand_fdtable(files, nr);
  35. }
  36. +EXPORT_SYMBOL_GPL(expand_files);
  37. static int count_open_files(struct fdtable *fdt)
  38. {
  39. --- a/kernel/exit.c
  40. +++ b/kernel/exit.c
  41. @@ -513,6 +513,7 @@ struct files_struct *get_files_struct(st
  42. return files;
  43. }
  44. +EXPORT_SYMBOL_GPL(get_files_struct);
  45. void put_files_struct(struct files_struct *files)
  46. {
  47. @@ -534,6 +535,7 @@ void put_files_struct(struct files_struc
  48. rcu_read_unlock();
  49. }
  50. }
  51. +EXPORT_SYMBOL_GPL(put_files_struct);
  52. void reset_files_struct(struct files_struct *files)
  53. {
  54. --- a/kernel/sched.c
  55. +++ b/kernel/sched.c
  56. @@ -4923,6 +4923,7 @@ int can_nice(const struct task_struct *p
  57. return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
  58. capable(CAP_SYS_NICE));
  59. }
  60. +EXPORT_SYMBOL_GPL(can_nice);
  61. #ifdef __ARCH_WANT_SYS_NICE
  62. --- a/mm/memory.c
  63. +++ b/mm/memory.c
  64. @@ -1396,6 +1396,7 @@ unsigned long zap_page_range(struct vm_a
  65. tlb_finish_mmu(&tlb, address, end);
  66. return end;
  67. }
  68. +EXPORT_SYMBOL_GPL(zap_page_range);
  69. /**
  70. * zap_vma_ptes - remove ptes mapping the vma
  71. @@ -3071,6 +3072,7 @@ static inline int check_stack_guard_page
  72. }
  73. return 0;
  74. }
  75. +EXPORT_SYMBOL_GPL(vmtruncate_range);
  76. /*
  77. * We enter with non-exclusive mmap_sem (to exclude vma changes,
  78. --- a/mm/vmalloc.c
  79. +++ b/mm/vmalloc.c
  80. @@ -1246,6 +1246,7 @@ void unmap_kernel_range(unsigned long ad
  81. vunmap_page_range(addr, end);
  82. flush_tlb_kernel_range(addr, end);
  83. }
  84. +EXPORT_SYMBOL_GPL(unmap_kernel_range);
  85. int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages)
  86. {
  87. @@ -1383,6 +1384,7 @@ struct vm_struct *get_vm_area(unsigned l
  88. return __get_vm_area_node(size, 1, flags, VMALLOC_START, VMALLOC_END,
  89. -1, GFP_KERNEL, __builtin_return_address(0));
  90. }
  91. +EXPORT_SYMBOL_GPL(get_vm_area);
  92. struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
  93. void *caller)
  94. --- a/include/linux/mm.h
  95. +++ b/include/linux/mm.h
  96. @@ -870,6 +870,7 @@ extern bool skip_free_areas_node(unsigne
  97. int shmem_lock(struct file *file, int lock, struct user_struct *user);
  98. struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
  99. +void shmem_set_file(struct vm_area_struct *vma, struct file *file);
  100. int shmem_zero_setup(struct vm_area_struct *);
  101. extern int can_do_mlock(void);