@@ -177,6 +177,8 @@ static inline bool mpol_is_preferred_many(struct mempolicy *pol)
extern bool apply_policy_zone(struct mempolicy *policy, enum zone_type zone);
+extern long replace_mempolicy(struct task_struct *task, struct mempolicy *new,
+ nodemask_t *nodes);
#else
struct mempolicy {};
@@ -297,5 +299,12 @@ static inline bool mpol_is_preferred_many(struct mempolicy *pol)
return false;
}
+static inline long replace_mempolicy(struct task_struct *task,
+ struct mempolicy *new,
+ nodemask_t *nodes)
+{
+ return -ENODEV;
+}
+
#endif /* CONFIG_NUMA */
#endif
@@ -815,9 +815,8 @@ static int mbind_range(struct vma_iterator *vmi, struct vm_area_struct *vma,
}
/* Attempt to replace mempolicy, release the old one if successful */
-static long replace_mempolicy(struct task_struct *task,
- struct mempolicy *new,
- nodemask_t *nodes)
+long replace_mempolicy(struct task_struct *task, struct mempolicy *new,
+ nodemask_t *nodes)
{
struct mempolicy *old = NULL;
NODEMASK_SCRATCH(scratch);
We will be adding a /proc/pid/mempolicy entry for use in swapping the mempolicy of a process at runtime. Export replace_mempolicy so that this can be used by that interface. Signed-off-by: Gregory Price <gregory.price@memverge.com> --- include/linux/mempolicy.h | 9 +++++++++ mm/mempolicy.c | 5 ++--- 2 files changed, 11 insertions(+), 3 deletions(-)