|
@@ -18,6 +18,7 @@
|
|
|
#include <linux/pfn.h>
|
|
|
#include <linux/bit_spinlock.h>
|
|
|
#include <linux/shrinker.h>
|
|
|
+#include <linux/resource.h>
|
|
|
|
|
|
struct mempolicy;
|
|
|
struct anon_vma;
|
|
@@ -1780,6 +1781,20 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
|
|
|
bool *need_rmap_locks);
|
|
|
extern void exit_mmap(struct mm_struct *);
|
|
|
|
|
|
+static inline int check_data_rlimit(unsigned long rlim,
|
|
|
+ unsigned long new,
|
|
|
+ unsigned long start,
|
|
|
+ unsigned long end_data,
|
|
|
+ unsigned long start_data)
|
|
|
+{
|
|
|
+ if (rlim < RLIM_INFINITY) {
|
|
|
+ if (((new - start) + (end_data - start_data)) > rlim)
|
|
|
+ return -ENOSPC;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
extern int mm_take_all_locks(struct mm_struct *mm);
|
|
|
extern void mm_drop_all_locks(struct mm_struct *mm);
|
|
|
|