|
@@ -2955,14 +2955,17 @@ int kswapd_run(int nid)
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Called by memory hotplug when all memory in a node is offlined.
|
|
|
|
|
|
+ * Called by memory hotplug when all memory in a node is offlined. Caller must
|
|
|
|
+ * hold lock_memory_hotplug().
|
|
*/
|
|
*/
|
|
void kswapd_stop(int nid)
|
|
void kswapd_stop(int nid)
|
|
{
|
|
{
|
|
struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
|
|
struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
|
|
|
|
|
|
- if (kswapd)
|
|
|
|
|
|
+ if (kswapd) {
|
|
kthread_stop(kswapd);
|
|
kthread_stop(kswapd);
|
|
|
|
+ NODE_DATA(nid)->kswapd = NULL;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static int __init kswapd_init(void)
|
|
static int __init kswapd_init(void)
|