X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fmempolicy.c;h=617fb31086eef17d45f5b04df65ff3a851a7a19c;hb=d7a5c32442ed3d528b9ddfd3d5b837bad0ffa9da;hp=cf18f0942553554ae4977958dc06109335eb8abd;hpb=ac7f6b5e44cb0982b98c31fa33298ba73fb5dcfc;p=~andy%2Flinux diff --git a/mm/mempolicy.c b/mm/mempolicy.c index cf18f094255..617fb31086e 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -727,7 +727,7 @@ int do_migrate_pages(struct mm_struct *mm, return -ENOSYS; } -static struct page *new_vma_page(struct page *page, unsigned long private) +static struct page *new_vma_page(struct page *page, unsigned long private, int **x) { return NULL; } @@ -1324,12 +1324,11 @@ struct mempolicy *__mpol_copy(struct mempolicy *old) atomic_set(&new->refcnt, 1); if (new->policy == MPOL_BIND) { int sz = ksize(old->v.zonelist); - new->v.zonelist = kmalloc(sz, SLAB_KERNEL); + new->v.zonelist = kmemdup(old->v.zonelist, sz, SLAB_KERNEL); if (!new->v.zonelist) { kmem_cache_free(policy_cache, new); return ERR_PTR(-ENOMEM); } - memcpy(new->v.zonelist, old->v.zonelist, sz); } return new; }