|
@@ -237,8 +237,9 @@ struct mm_struct {
|
|
|
atomic_t mm_users; /* How many users with user space? */
|
|
|
atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */
|
|
|
int map_count; /* number of VMAs */
|
|
|
- struct rw_semaphore mmap_sem;
|
|
|
+
|
|
|
spinlock_t page_table_lock; /* Protects page tables and some counters */
|
|
|
+ struct rw_semaphore mmap_sem;
|
|
|
|
|
|
struct list_head mmlist; /* List of maybe swapped mm's. These are globally strung
|
|
|
* together off init_mm.mmlist, and are protected
|
|
@@ -281,6 +282,9 @@ struct mm_struct {
|
|
|
unsigned int token_priority;
|
|
|
unsigned int last_interval;
|
|
|
|
|
|
+ /* How many tasks sharing this mm are OOM_DISABLE */
|
|
|
+ atomic_t oom_disable_count;
|
|
|
+
|
|
|
unsigned long flags; /* Must use atomic bitops to access the bits */
|
|
|
|
|
|
struct core_state *core_state; /* coredumping support */
|
|
@@ -313,8 +317,6 @@ struct mm_struct {
|
|
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
|
|
pgtable_t pmd_huge_pte; /* protected by page_table_lock */
|
|
|
#endif
|
|
|
- /* How many tasks sharing this mm are OOM_DISABLE */
|
|
|
- atomic_t oom_disable_count;
|
|
|
};
|
|
|
|
|
|
/* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
|