diff options
-rw-r--r-- | include/linux/mempolicy.h | 7 | ||||
-rw-r--r-- | mm/mempolicy.c | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index 9080fab1426d..017def89e568 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h @@ -44,6 +44,13 @@ enum { #define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */ #define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */ +/* + * Internal flags that share the struct mempolicy flags word with + * "mode flags". These flags are allocated from bit 0 up, as they + * are never OR'ed into the mode in mempolicy API arguments. + */ +#define MPOL_F_SHARED (1 << 0) /* identify shared policies */ + #ifdef __KERNEL__ #include <linux/mmzone.h> diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5e7eea2dc8b4..78b18a60b9b2 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1750,6 +1750,7 @@ static struct sp_node *sp_alloc(unsigned long start, unsigned long end, n->start = start; n->end = end; mpol_get(pol); + pol->flags |= MPOL_F_SHARED; /* for unref */ n->policy = pol; return n; } |