diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 358b7c11426de2400ba68ad485c887bfa189ef3a..88a74bc4cba54e1198c56416dc7f83aaeb57630d 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -2733,6 +2733,7 @@ static int shared_policy_replace(struct shared_policy *sp, unsigned long start,
 	mpol_new = kmem_cache_alloc(policy_cache, GFP_KERNEL);
 	if (!mpol_new)
 		goto err_out;
+	atomic_set(&mpol_new->refcnt, 1);
 	goto restart;
 }